Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [Solved]Program exited with code 0
Forum Updated to NodeBB v4.3 + New Features

[Solved]Program exited with code 0

Scheduled Pinned Locked Moved General and Desktop
49 Posts 3 Posters 30.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    gayu
    wrote on last edited by
    #17

    This means whether you are asking me to use double backslash in the phrase itself or at the end of last stmt i've to put double backslash.

    1 Reply Last reply
    0
    • G Offline
      G Offline
      gayu
      wrote on last edited by
      #18

      By trying with this code,

      @
      1.int pos1 = option.indexOf('|');
      2.if (pos1 != -1)
      3. {
      4. stmt1 = option.left(pos1);
      5. int pos2 = option.indexOf('\', pos1);
      7. if (pos2 != -1)
      8. {
      9. phrase = option.mid(pos1, pos2 - pos1);
      10 }
      11. else
      12. {
      13. // there is no '|' symbol in option
      14. }
      @
      I am getting this error "commitdb.cpp:1219: error: a function-definition is not allowed here before ‘{’ token" in some other functions.
      so i removed this code and compile with the the original code itself.@@

      1 Reply Last reply
      0
      • A Offline
        A Offline
        AlekseyOk
        wrote on last edited by
        #19

        add } before else

        1 Reply Last reply
        0
        • G Offline
          G Offline
          gayu
          wrote on last edited by
          #20

          Ya i added }
          Now it is not exiting from the editor and its working.
          But, the question is entering into database finely, the answer is not entering to the database (i.e options) printing the null values for option,stmt1 and stmt2 . Also the null values are entering to database more than once

          1 Reply Last reply
          0
          • A Offline
            A Offline
            AlekseyOk
            wrote on last edited by
            #21

            Sorry, I don't understand what you do you want.

            1. Insert some values into some db?
            2. something else?
            1 Reply Last reply
            0
            • G Offline
              G Offline
              gayu
              wrote on last edited by
              #22

              no through editor i am entering the Ques and answer also
              The xml file generates, from the xml file to database it is entering, bt the Ques is entering into the database correctly.
              The options i.e Qt is a |cross platform\ appln framework is the Answer stmt.
              Bt this enters the database as null value only not the stmt or phrase

              1 Reply Last reply
              0
              • A Offline
                A Offline
                AlekseyOk
                wrote on last edited by
                #23

                My code is not processing statements with asterisk (*), so you should add this by yourself ;-)

                1 Reply Last reply
                0
                • G Offline
                  G Offline
                  gayu
                  wrote on last edited by
                  #24

                  No thats not my problem.

                  After replacing my code with the code wat u give me to replace with, the following is the table entries now.

                  The following table for Question entries

                  QNo | Question | QueLocLang | Board | Subject | Chapter | PageNo

                  4724 | What is Qt? | NULL | Tamil Nadu | EnglishI | 1 | 1

                  4725 | Who is Sachin? | NULL | Tamil Nadu | EnglishI | 1 | 1

                  The table entries for Answers is,
                  More than one time it is entering like the following

                  APNo | Statement1 | Statement2 | Option1 | QNo

                  80563 | | NULL | | 4724

                  80564 | | NULL | | 4724

                  80565 | | NULL | | 4724

                  80566 | | NULL | | 4725

                  80567 | | NULL | | 4725

                  80568 | | NULL | | 4725

                  The actual Answer table should be like,

                  APNo | Statement1 | Statement2 | Option1 | QNo

                  80563 | Qt is a | NULL | cross platform application framework | 4724

                  80564 | | is sachin | A famous crickter | 4725

                  But i am not getting like this. I am just getting the empty values for stmt1,option.

                  1 Reply Last reply
                  0
                  • G Offline
                    G Offline
                    gayu
                    wrote on last edited by
                    #25

                    Instead of the following code

                    @
                    int mainForm::parseOption(int ind,QString option, QString &stmt1, QString &phrase)
                    {
                    QTextStream cout(stdout, QIODevice::WriteOnly);
                    int j = 0;
                    int index = ind;
                    cout<<"index---\n"<<index<<endl;
                    cout<<"311 : parseOption : "<<option<<endl;
                    cout<<"option[index]--\n"<<option[index]<<endl;
                    while(option[index] != '|')
                    {
                    stmt1[j] = option[index];
                    cout<<"stmt1[j]\n"<<stmt1<<endl;
                    if(option[index]=='\0')
                    {
                    cout<<"option[index]-----\n"<<option[index]<<endl;
                    stmt1[j] = '\0';
                    option[0] = '\0';
                    return -1;
                    // return (index);
                    }
                    index++;
                    j++;
                    }
                    stmt1[j] = '\0';
                    stmt1=stmt1.replace( "{sub}","<sub>");
                    stmt1=stmt1.replace( "{/sub}","</sub>" );

                    while(option[index] != '\')
                    {
                    phrase[j] = option[index];
                    index++;
                    j++;
                    }

                    cout<<"425 : "<<stmt1<<endl;
                    j = 0;
                    index++;
                    cout<<"option[index]-->\n"<<option[index]<<endl;
                    phrase=phrase.replace( "{sub}","<sub>" );
                    phrase=phrase.replace( "{sub}","<sub>" );
                    cout<<"Phrase value"<<phrase<<endl;
                    phrase[j] = '\0';
                    cout<<"436 : "<<phrase<<endl;

                    return (index + 1);

                    }
                    @

                    I added the code u asked me to add

                    @

                    1.  int pos1 = option.indexOf('|');
                      
                    2.  if (pos1 != -1)
                      
                    3.  {
                      
                    4.    stmt1 = option.left(pos1);
                      
                    5.      int pos2 = option.indexOf('\\', pos1);
                      
                    6.      if (pos2 != -1)
                      
                    7.      {
                      
                    8.          phrase = option.mid(pos1, pos2 - pos1);
                      
                    9.      }
                      
                    10. else
                      
                    11. {
                    12. // there is no '|' symbol in option
                    13.  }
                      

                    @

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      AlekseyOk
                      wrote on last edited by
                      #26

                      I've already checked my code and it works fine (actually, you can change line 9 with phrase = option.mid(pos1 + 1, pos2 - pos1); to remove leading '|').

                      Input: "Qt is a |cross platform application framework."
                      Output: stmt1 = "Qt is a "
                      phrase = ""cross platform application framework"

                      1 Reply Last reply
                      0
                      • G Offline
                        G Offline
                        gayu
                        wrote on last edited by
                        #27

                        I tried by that too phrase = option.mid(pos1 + 1, pos2 – pos1); bt nw th answer table is not get updated.
                        i.e the Questions are entering to the database, but the answers are not entering to the database in answer table.

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          AlekseyOk
                          wrote on last edited by
                          #28

                          @
                          QString option = "Qt is a |cross platform application framework\.";
                          int pos1 = option.indexOf('|');
                          if (pos1 != -1)
                          {
                          stmt1 = option.left(pos1);

                          int pos2 = option.indexOf('\\', pos1);
                          if (pos2 != -1)
                          {
                              phrase = option.mid(pos1, pos2 - pos1 + 1);
                          }
                          

                          }
                          else
                          {
                          qDebug("there is no '|' symbol in option");
                          }

                          qDebug("stmt1=%s, phrase=%s", qPrintable(stmt1), qPrintable(phrase));
                          @

                          Output: "stmt1=Qt is a , phrase=|cross platform application framework"

                          Is this output correct for your task?

                          1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            gayu
                            wrote on last edited by
                            #29

                            The '|' and '' should not seen in the database. Otherwise the output is correct.
                            But, the thing is i need the stmt2 also enter to the database.
                            for eg

                            |Lotus\ is our national flower.

                            In the above stmt, lotus is the phrase, and is our national flower is the stmt2.
                            That stmt2 is not entering in database.

                            And also tried with that code, also remain the same problem, the answers are not entering into the database.

                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              AlekseyOk
                              wrote on last edited by
                              #30

                              try to replace '' with '\'

                              1 Reply Last reply
                              0
                              • G Offline
                                G Offline
                                gayu
                                wrote on last edited by
                                #31

                                ya i tried by replacing '' with '\' Still it is not get inserting into the Answer table.

                                1 Reply Last reply
                                0
                                • G Offline
                                  G Offline
                                  gayu
                                  wrote on last edited by
                                  #32

                                  So in my code instead of return -1, i replaced it by returning the index as return index.

                                  As in the switch case, in if condition i'm checking the condition as

                                  @
                                  if(option[index]=='\0')
                                  {
                                  cout<<"option[index]-----\n"<<option[index]<<endl;
                                  stmt1[j] = '\0';
                                  option[0] = '\0';
                                  //return -1; instead of this
                                  return (index); added this
                                  }
                                  @

                                  instead of this condition i replaced it as,

                                  @
                                  if(index!=-1) instead of this

                                  if((((Short *)object)->options[i])[index]!='\0') added this
                                  {
                                  query = new QSqlQuery("insert into ShAnsPts(Statement1,Statement2,Option1,QNo,PointNo,CorrectNo) values ("" + stmt1 + "", NULL,"" + phrase + ""," + temp2.setNum(qNo) + "," + temp2.setNum(((Short *)object)->ptno[i+1])+",1)");
                                  }
                                  @

                                  With the above condition what i've added it working fine.

                                  It is inserting into the Ques table and also in Ans table now. whether it is right or nt. Do you have any idea about this. Please tell me

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    AlekseyOk
                                    wrote on last edited by
                                    #33

                                    What is an "Answer table"?! We didn't speak about any insertion of data to Answer table. Check your SQL-queries for correctness.

                                    1 Reply Last reply
                                    0
                                    • G Offline
                                      G Offline
                                      gayu
                                      wrote on last edited by
                                      #34

                                      The answer table is where the options and stmt get parsed i.e Qt is a |Cross platform appln framework. is to be in the answer table.
                                      Surely i'll check the SQL-queries where i've to do the corrections.

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        AlekseyOk
                                        wrote on last edited by
                                        #35

                                        First of all - print all values on the screen
                                        Second - change SQL-query builder to the next:

                                        @
                                        query = new QSqlQuery("insert into ShAnsPts(Statement1,Statement2,Option1,QNo,PointNo,CorrectNo) values (?, ?, ?, ?, ?, ?)");
                                        query.addBindValue(stmt1);
                                        query.addBindValue(QVariant(QVariant::String)); // NULL string
                                        query.addBindValue(phrase);
                                        query.addBindValue(temp2.setNum(qNo));
                                        query.addBindValue(temp2.setNum(((Short *)object)->ptno[i+1]));
                                        query.addBindValue(1);
                                        @

                                        1 Reply Last reply
                                        0
                                        • G Offline
                                          G Offline
                                          gayu
                                          wrote on last edited by
                                          #36

                                          Sorry for asking you again and again, please tell me
                                          Instead of the following code
                                          @
                                          query = new QSqlQuery("insert into ShAnsPts(Statement1,Statement2,Option1,QNo,PointNo,CorrectNo) values ("" + stmt1 + "", NULL,"" + phrase + ""," + temp2.setNum(qNo) + "," + temp2.setNum(((Short *)object)->ptno[i+1])+",1)");
                                          @

                                          I've to add this code
                                          @
                                          query = new QSqlQuery("insert into ShAnsPts(Statement1,Statement2,Option1,QNo,PointNo,CorrectNo) values (?, ?, ?, ?, ?, ?)");
                                          query.addBindValue(stmt1);
                                          query.addBindValue(QVariant(QVariant::String)); // NULL string
                                          query.addBindValue(phrase);
                                          query.addBindValue(temp2.setNum(qNo));
                                          query.addBindValue(temp2.setNum(((Short *)object)->ptno[i+1]));
                                          query.addBindValue(1);
                                          @

                                          If means by adding this code it is showing the error as request for member ‘addBindValue’ in ‘query’, which is of non-class type ‘QSqlQuery

                                          For printing the values on screen i already added the following code.

                                          @index = parseOption(index,((Short *)object)->options[i],stmt1,phrase);
                                          cout<<"index : "<<index<<"\n"<<stmt1<<"\n"<<phrase<<endl;
                                          QString text11;
                                          stmt1temp=stmt1;
                                          cout<<"stmt1temp\n"<<stmt1<<endl;
                                          stmt1=stmt1temp;
                                          cout<<"stmt1\n"<<stmt1<<endl;
                                          phrasetemp=phrase;
                                          cout<<"phrasetemp\n"<<phrasetemp<<endl;
                                          phrase=phrasetemp;
                                          cout<<"phrase\n"<<phrase<<endl;@

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved