digitalmars.D - dlang how to use sqlite3
- kaspars (52/52) Oct 01 2013 Hello everyone !
- John Colvin (6/9) Oct 01 2013 should be
- kaspars (2/12) Oct 01 2013 Thank you ,It work !!
Hello everyone ! i m trying to use sqlite3 but fails Can anybody help me fix the errors import core.stdc.stdio, std.string, etc.c.sqlite3; pragma(lib, "sqlite3"); // Version 1 int DoTheCallback(void* NotUsed, int numCols ,char[][] results,char[][] columnNames) { writef("number of colomns: ", columnNames, "\n"); return 0; }; // Version 2 extern(C) int myCallback(void *a_parm, int argc, char **argv, char **column) { return 0; } int main() { sqlite3* db; int code; char*** pazResult; int* pnRow; int* pnColumn; char** pzErrmsg; code = sqlite3_open("triphone.db", &db); if(SQLITE_OK != code) { printf("DB create error: %s\n", sqlite3_errmsg(db)); return 1; } printf("DB open!\n"); // Version 1 sqlite3_exec(db,"SELECT * FROM triphones",myCallback,null,null); // Version 2 sqlite3_exec(db,"SELECT * FROM triphones",cast(sqlite3_callback)&DoTheCallback,null,null); printf("%s \n",pzErrmsg); sqlite3_close(db); printf("DB closed.\n"); return 0; } The Question is how to use sqlite3 Above Versions not working Version 1 return not callable using argument types () Versin 2 return number of colomns: number of colomns: number of colomns: number of colomns: but empty array
Oct 01 2013
On Tuesday, 1 October 2013 at 09:11:32 UTC, kaspars wrote:// Version 1 sqlite3_exec(db,"SELECT * FROM triphones",myCallback,null,null);should be sqlite3_exec(db,"SELECT * FROM triphones",&myCallback,null,null); otherwise you're actually doing a parenthesis-less call to myCallback instead of passing it's address, hence the error message.
Oct 01 2013
On Tuesday, 1 October 2013 at 09:17:12 UTC, John Colvin wrote:On Tuesday, 1 October 2013 at 09:11:32 UTC, kaspars wrote:Thank you ,It work !!// Version 1 sqlite3_exec(db,"SELECT * FROM triphones",myCallback,null,null);should be sqlite3_exec(db,"SELECT * FROM triphones",&myCallback,null,null); otherwise you're actually doing a parenthesis-less call to myCallback instead of passing it's address, hence the error message.
Oct 01 2013