On 17.05.2011 11:22 StyveA said the following:
>
> Hello everyone,
>
> I don't understand why when I use the sqlite3_prepare_v2() function, some
> bind_xxx, and then commit, the data stored in my database are redundant..
>
> To be more precise, when I run my code (see below), I obtain this in my
> database :
>
> 1|s|||
> 2|s|t||
> 3|s|t|y|
> 4|s|t|y|ve
>
> ====================================
> ============ Part of the code ===========
>
> sprintf(insert_data,"INSERT INTO %s(pid, class_id, instance_id, dataset)
> VALUES(?,?,?,?)", table_name);
> const char *zSql = insert_data;
>
>
> sqlite3_exec(db, "BEGIN", NULL, NULL, NULL);
> if( sqlite3_prepare_v2(db, zSql, strlen(zSql)+1,&ppStmt, pzTail) !=
> SQLITE_OK )
> {
> sqlite3_close(db);
> exit(1);
> }
>
> if(ppStmt)
> {
>
> sqlite3_bind_blob(ppStmt, 1,&pid_value, sizeof(pid_value),
> SQLITE_TRANSIENT);
> sqlite3_step(ppStmt);
> sqlite3_reset(ppStmt);
remove these
> sqlite3_bind_blob(ppStmt, 2,&class_id_value, sizeof(class_id_value),
> SQLITE_TRANSIENT);
> sqlite3_step(ppStmt);
> sqlite3_reset(ppStmt);
remove these
> sqlite3_bind_blob(ppStmt, 3,&instance_id_value,
> sizeof(instance_id_value), SQLITE_TRANSIENT);
> sqlite3_step(ppStmt);
> sqlite3_reset(ppStmt);
remove these
> sqlite3_bind_blob(ppStmt, 4,&dataset_struct, sizeof(dataset_struct),
> SQLITE_TRANSIENT);
> sqlite3_step(ppStmt);
> sqlite3_finalize(ppStmt);
> sqlite3_exec(db, "COMMIT", NULL, NULL, NULL);
> }
> ====================================
> ====================================
>
>
> Is there an error in the code? Or is it impossible to submit all data in one
> time without specifying the PRIMARY_ID?
You need to
prepare
bind all variables (not just one)
step
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users