I have code that looks like that: --- begin main.cpp ---
#include <unistd.h> #include <stdio.h> #include <sqlite3.h> #include <string.h> void print( sqlite3_stmt * pStmt ) { const char* col1name = sqlite3_column_name( pStmt, 0 ); printf("res: "); while ( sqlite3_step( pStmt ) == SQLITE_ROW ){ printf("%lf ", sqlite3_column_double( pStmt, 0 )); } printf("\n"); sqlite3_finalize(pStmt); } int main( int argc, char ** argv ) { const char filename[] = "test.db3"; char * err = 0; unlink( filename ); sqlite3 *db; sqlite3_open( filename, &db ); sqlite3_exec(db, "create table test (a decimal(12,4))", 0, 0, &err); sqlite3_exec(db, "insert into test values (123.456)", 0, 0, &err); sqlite3_stmt * q; char buf[2048]; strcpy( buf, "select * from test"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); print( q ); strcpy( buf, "select * from test where a = ?"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); sqlite3_bind_text( q, 1, "123.456", 7, SQLITE_STATIC ); print( q ); strcpy( buf, "select sum(a) from test group by a"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); print( q ); strcpy( buf, "select sum(a) from test group by a having sum(a) = 123.456"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); print( q ); strcpy( buf, "select sum(a) from test group by a having sum(a) = ?"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); sqlite3_bind_text( q, 1, "123.456", 7, SQLITE_STATIC ); print( q ); strcpy( buf, "select sum(a) from test group by a having sum(a) = 0+?"); sqlite3_prepare(db, buf, sizeof(buf), &q, NULL); sqlite3_bind_text( q, 1, "123.456", 7, SQLITE_STATIC ); print( q ); return 0; } --- end main.cpp --- The output is: res: 123.456000 res: 123.456000 res: 123.456000 res: 123.456000 res: res: 123.456000 Whereas I would expect it to be: res: 123.456000 res: 123.456000 res: 123.456000 res: 123.456000 res: 123.456000 res: 123.456000 As the last three statements are exactly the same (in meaning). Can someone explain what's happening? _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users