Changeset ba2393a in tol


Ignore:
Timestamp:
Nov 9, 2015, 5:17:08 PM (11 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
9ae89b6
Parents:
9637442
Message:

Refs #1893

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@7010 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/dbdrivers/libtolsqlite.c

    r9637442 rba2393a  
    5050  int num_rows;
    5151  int current_tuple;
     52  int result_step;
    5253} sqlited;
    5354
    … …  
    9394  dbd->num_rows = 0;
    9495  dbd->current_tuple = 0;
     96  dbd->result_step = 0;
    9597
    9698  rc = sqlite3_open_v2(database, &(dbd->conn),
    … …  
    171173  if(ok!=SQLITE_OK)
    172174  { // Error
     175    stdOutWriter("\nERROR: [sqlite_OpenQuery] \n");
    173176    stdOutWriter(sqlite3_errmsg(dbd->conn));
     177    stdOutWriter("\nquery:\n");
     178    stdOutWriter(query);   
     179    stdOutWriter("\n");
    174180    return 0;
    175181  }
    176   dbd->num_cols = sqlite3_data_count(dbd->result);
     182  dbd->num_cols = sqlite3_column_count(dbd->result);
    177183  return 1;
    178184}
    … …  
    185191DLLEXPORT(int) sqlite_ExecQuery(sqlited *dbd, const char *query)
    186192{
    187   const char *pzTail=0;
    188   int ok = sqlite3_prepare_v2(
    189     dbd->conn,       /* Database handle */
    190     query,           /* SQL statement, UTF-8 encoded */
    191     strlen(query),   /* Maximum length of zSql in bytes. */
    192     &(dbd->result),  /* OUT: Statement handle */
    193     &pzTail           /* OUT: Pointer to unused portion of zSql */
     193  char *errmsg=0;
     194  int ok_exec;
     195  ok_exec = sqlite3_exec(
     196    dbd->conn,                                  /* An open database */
     197    query,                           /* SQL to be evaluated */
     198    NULL,  /* Callback function */
     199    NULL,                                    /* 1st argument to callback */
     200    &errmsg                              /* Error msg written here */
    194201  );
    195   if(ok!=SQLITE_OK)
     202  if(ok_exec!=SQLITE_OK)
    196203  { // Error
    197     stdOutWriter(sqlite3_errmsg(dbd->conn));
     204    stdOutWriter("\nERROR: [sqlite_ExecQuery] \n");
     205    stdOutWriter(errmsg);
     206    stdOutWriter("\nquery:\n");
     207    stdOutWriter(query);   
     208    stdOutWriter("\n");
    198209    return 0;
    199210  }
    … …  
    207218DLLEXPORT(int) sqlite_GetNext(sqlited *dbd)
    208219{
    209   int ok = sqlite3_step(dbd->result);   
    210   if(ok!=SQLITE_DONE) {
    211     stdOutWriter(sqlite3_errmsg(dbd->conn));
    212     return(0);
    213   }
    214   return(1);
     220  if(dbd->result_step==SQLITE_DONE) { return(0); }
     221  dbd->result_step = sqlite3_step(dbd->result);
     222  if(dbd->result_step==SQLITE_ROW) { return(1); }
     223  if(dbd->result_step==SQLITE_DONE) { return(1); }
     224  stdOutWriter(sqlite3_errmsg(dbd->conn));
     225  return(0);
    215226}
    216227
    … …  
    250261  for(n=0;name[n];n++) { name[n] = tolower(name[n]); } 
    251262  if((n>3) & (name[0]=='d') & (name[1]=='t') & (name[2]=='_'))
     263  { dbType = TypeDBDate; }
     264  else if((n>3) & (name[0]=='d') & (name[1]=='d') & (name[2]=='_'))
    252265  { dbType = TypeDBDate; }
    253266  else if((type==SQLITE_INTEGER) || (type==SQLITE_FLOAT))
Note: See TracChangeset for help on using the changeset viewer.