No, that is not problem.

Taleeb Anwar wrote:
> 
> /*  A Query to find types of each column. */
>      str = (char *)malloc(sizeof(char) * 255);
>       memset(str, 0, 255);
>       strcat(str, "SELECT ");
>       for(loopVar = 0; loopVar < noOfColumns; loopVar++)
>       {
>         strcat(str, colNames[loopVar]);
>         if(loopVar < (noOfColumns -1))
>               strcat(str,",");
>       }
> 
> The problem is, perhaps, in the query created through this loop. An extra
> ',' will get appended after the last column name. that is if you have two
> columns called column1 and column2 so your query will be
> SELECT column1,column2, FROM... //(note ',' after column2)
> 
> I may be wrong for more or less I've forgotten "C"; but personally I think
> the sqlite should be throwing exception...
> 
> Thanks & Regards
> Taleeb bin Waquar
> 
> *Hum Mashriq Ke "Miskeenon" Ka Dil Maghrib men Ja Atka Hai!!*
> 
> 
> 
> 
> On Thu, Feb 9, 2012 at 3:51 PM, bhaskarReddy <uni...@gmail.com> wrote:
> 
>>
>> HI Friends,
>>
>>          I dont know why the sqlite3_step getting core dumped.
>>
>>  #include <stdio.h>
>>  #include <stdlib.h>
>>  #include "sqlitedb1.h"
>>  #include <string.h>
>>  #include <sqlite3.h>
>>  #include <sys/types.h>
>>  #include <sys/stat.h>
>>  #include <fcntl.h>
>>
>>  int db_retrieve_row(char *db_name, char *table_name, int num_of_keys,
>> char
>> * col_names[],column_value_t * col_values);
>>
>> int main(void)
>> {
>>      column_type_t enm[2];
>>   //   int retVal;
>>      char *col_name[3];
>>      char *db_name = "LR6002.db";
>>      char *table_name = "ONTTable";
>>      column_value_t col_val[3];
>>
>>      enm[0] = COLUMN_TYPE_INT;   // slotId
>>      enm[1] = COLUMN_TYPE_STRING;
>>
>>      col_val[0].number = 1;
>>      col_val[1].number = 2;
>>      col_val[2].number = 3;
>>    /* Array of Column Names. */
>>     col_name[0] = "slotId";
>>     col_name[1] = "ponChannelId";
>>     col_name[2] = "onuType";
>>
>>   db_retrieve_row(db_name, table_name, 3,  col_name,col_val);
>>   return 0;
>>  }
>>  int db_retrieve_row(char *db_name, char *table_name, int num_of_keys,
>> char
>> * col_names[],column_value_t * col_values)
>>  {
>>     sqlite3 *db;
>>     sqlite3_stmt *stmt;
>>     int status = 0,loopVar,noOfColumns;
>>     char *query = NULL,**colNames,*str;
>>     int  retVal,*colType;
>>
>>     retVal = sqlite3_open(db_name, &db);
>>     if(retVal) {
>>         fprintf(stderr,"Can't  open database: %s\n",sqlite3_errmsg(db));
>>         sqlite3_close(db);
>>         exit(1);
>>     }
>>    /* A Query to find the number  of columns in the table. */
>>    query = (char *)malloc(sizeof(char) * 255);
>>    memset(query,0,255);
>>    strcat(query, "SELECT * FROM ");
>>    strcat(query, table_name);
>>    strcat(query, ";");
>>
>>    status = sqlite3_prepare_v2(db,query,strlen(query) + 1, &stmt, NULL);
>>    if(status != SQLITE_OK) {
>>        printf("Prepare error: %s\n", sqlite3_errmsg(db));
>>        exit(1);
>>    }
>>    noOfColumns = sqlite3_column_count(stmt);
>>    if(SQLITE_OK != sqlite3_finalize(stmt))
>>    {
>>         printf("The prepared statement is Not deleted.\n");
>>    }
>>    free(query);
>>    query = NULL;
>>
>>      /* A Query to find the Names of each column. */
>>      query = (char *)malloc(sizeof(char) * 255);
>>     memset(query,0,255);
>>      strcat(query, "SELECT * FROM ");
>>      strcat(query, table_name);
>>      strcat(query, ";");
>>
>>      //stmt = NULL;
>>      status = sqlite3_prepare_v2(db,query,strlen(query) + 1, &stmt,
>> NULL);
>>     if(status != SQLITE_OK) {
>>         printf("Prepare error: %s\n", sqlite3_errmsg(db));
>>          exit(1);
>>      }
>>
>>      colNames = (char **)malloc(sizeof(char));
>>      memset(colNames,0,1);
>>
>>       for(loopVar = 0; loopVar < noOfColumns; loopVar++)
>>       {
>>           colNames[loopVar] = (char *)malloc(sizeof(char) * 20);
>>           memset(colNames[loopVar], 0, 20);
>>            strcat(colNames[loopVar],sqlite3_column_name(stmt, loopVar));
>>       }
>>       if(SQLITE_OK != sqlite3_finalize(stmt))
>>       {
>>          printf("The prepared statement is Not deleted.\n");
>>       }
>>       free(query);
>>      query = NULL;
>>
>>  /*  A Query to find types of each column. */
>>      str = (char *)malloc(sizeof(char) * 255);
>>       memset(str, 0, 255);
>>       strcat(str, "SELECT ");
>>       for(loopVar = 0; loopVar < noOfColumns; loopVar++)
>>       {
>>         strcat(str, colNames[loopVar]);
>>         if(loopVar < (noOfColumns -1))
>>               strcat(str,",");
>>       }
>>       strcat(str, " FROM ");
>>       strcat(str, table_name);
>>       strcat(str, ";");
>>
>>       status=sqlite3_prepare_v2(db,str,strlen(str)+1, &stmt, NULL);
>>       if (status != SQLITE_OK) {
>>          printf("prepare error:%s\n",sqlite3_errmsg(db));
>>          exit(1);
>>      }
>>      sqlite3_step(stmt);       //Causing Segmentation Fault. //
>>      colType = (int *)malloc(sizeof(int) * noOfColumns);
>>      for(loopVar = 0; loopVar < noOfColumns; loopVar++){
>>          colType[loopVar] = sqlite3_column_type(stmt, loopVar);
>>          printf("Column Types = %d\n",colType[loopVar]);
>>       }
>>      if(SQLITE_OK != sqlite3_finalize(stmt))
>>      {
>>         printf("The prepared statement is Not deleted.\n");
>>      }
>>      free(query);
>>      query = NULL;
>>
>> }
>>
>> And the API 'sqlite3_column_type" always returning 5, i.e., NULL.
>>
>>
>> Can any one tell me what was the problem that i did.
>>
>>
>> Regards,
>> Bhaskar.
>>
>> --
>> View this message in context:
>> http://old.nabble.com/sqlite3_step-getting-core-dumbed.-tp33292180p33292180.html
>> Sent from the SQLite mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> 
> 

-- 
View this message in context: 
http://old.nabble.com/sqlite3_step-getting-core-dumbed.-tp33292180p33292404.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to