Thank you. Its working.
But why i am getting sqlite3_column_type returning 5.
Marcus Grimm wrote:
>
> try changing this:
>
> colNames = (char **)malloc(sizeof(char));
>
> into something like
>
> colNames = (char **)malloc(sizeof(char * ) * noOfColumns);
>
>
> On 09.02.2012 11:21, bhaskarReddy 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.
>>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>
--
View this message in context:
http://old.nabble.com/sqlite3_step-getting-core-dumbed.-tp33292180p33292777.html
Sent from the SQLite mailing list archive at Nabble.com.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users