In my case have to use VS C++ 6.0 32 bit. Maybe this results too that behavior.
> Am 08.11.2016 um 22:05 schrieb Richard Hipp <d...@sqlite.org>: > > Unable to reproduce the problem. My test program is this: > > -------------------- > #include <stdio.h> > #include "sqlite3.h" > int main(int argc, char **argv){ > sqlite3 *db; > if( argc!=2 ){ > fprintf(stderr, "Usage: %s FILENAME\n", argv[0]); > return 1; > } > const char *zDb = argv[1]; > unlink(zDb); > sqlite3_open(zDb, &db); > sqlite3_exec(db, "CREATE TABLE MyTable(SomeTime);", 0, 0, 0); > int result = sqlite3_exec(db, "begin;", (void*)0, (void*)0, (void*)0); > if (result != SQLITE_OK) > return 0; > sqlite3_stmt* stmt = (void*)0; > int ok = 1; > if (sqlite3_prepare_v2(db, "insert into MyTable (SomeTime) values > (?);", -1, &stmt, (void*)0) != SQLITE_OK) > ok = 0; > if (ok && sqlite3_bind_text(stmt, 1, "2016-11-01 12:00:00", -1, > SQLITE_TRANSIENT) != SQLITE_OK) > ok = 0; > if (ok && sqlite3_step(stmt) != SQLITE_DONE) > ok = 0; > if (ok && sqlite3_finalize(stmt) != SQLITE_OK) > ok = 0; > if (ok) > sqlite3_exec(db, "commit;", (void*)0, (void*)0, (void*)0); > else > sqlite3_exec(db, "rollback;", (void*)0, (void*)0, (void*)0); > printf("ok=%d\n", ok); > sqlite3_close(db); > return 0; > } > ---------- > > Place the above in a file named "x1.c" and compile as follows: > > gcc -g -c sqlite3.c > gcc -g x1.c sqlite3.o -lpthread -ldl > > Then run it: > > ./a.out x1.db > ok=1 > > Then verify the database: > > sqlite3 x1.db .dump > PRAGMA foreign_keys=OFF; > BEGIN TRANSACTION; > CREATE TABLE MyTable(SomeTime); > INSERT INTO "MyTable" VALUES('2016-11-01 12:00:00'); > COMMIT; > > The above was using exactly the 3.15.0 release on Ubuntu. > > Perhaps you can suggest another way to reproduce the problem. > >> On 11/8/16, heribert <herib...@scharnagl.com> wrote: >> >> Currently i'm using sqlite 3.15.0. >> >> I run into the problem that a TEXT field of a TABLE cannot be bind to a >> string containing a dash. If i remove or replace the dash/dashes against >> any character the prepared and bind statement works fine. >> >> >> Here two code fragments. The demo table is like "create table MyTable >> (SomeTime text)" >> >> >> //do not work... runs into commit!! but add nothing to MyTable >> int result = sqlite3_exec(validSqlite3, "begin;", nullptr, nullptr, >> nullptr); >> if (result != SQLITE_OK) >> return; >> sqlite3_stmt* stmt = nullptr; >> bool ok = true; >> if (sqlite3_prepare_v2(validSqlite3, "insert into MyTable >> (SomeTime) values (?);", -1, &stmt, nullptr) != SQLITE_OK) >> ok = false; >> if (ok && sqlite3_bind_text(stmt, 1, "2016-11-01 12:00:00", -1, >> SQLITE_TRANSIENT) != SQLITE_OK) >> ok = false; >> if (ok && sqlite3_step(stmt) != SQLITE_DONE) >> ok = false; >> if (ok && sqlite3_finalize(stmt) != SQLITE_OK) >> ok = false; >> if (ok) >> sqlite3_exec(validSqlite3, "commit;", nullptr, nullptr, nullptr); >> else >> sqlite3_exec(validSqlite3, "rollback;", nullptr, nullptr, nullptr); >> >> //same code as above... BUT: no dashes in the text field >> //works fine... runs into commit and inserts a new row in MyTable >> with column SomeTime content: "2016/11/01 12:00:00" >> int result = sqlite3_exec(validSqlite3, "begin;", nullptr, nullptr, >> nullptr); >> if (result != SQLITE_OK) >> return; >> sqlite3_stmt* stmt = nullptr; >> bool ok = true; >> if (sqlite3_prepare_v2(validSqlite3, "insert into MyTable >> (SomeTime) values (?);", -1, &stmt, nullptr) != SQLITE_OK) >> ok = false; >> if (ok && sqlite3_bind_text(stmt, 1, "2016/11/01 12:00:00", -1, >> SQLITE_TRANSIENT) != SQLITE_OK) >> ok = false; >> if (ok && sqlite3_step(stmt) != SQLITE_DONE) >> ok = false; >> if (ok && sqlite3_finalize(stmt) != SQLITE_OK) >> ok = false; >> if (ok) >> sqlite3_exec(validSqlite3, "commit;", nullptr, nullptr, nullptr); >> else >> sqlite3_exec(validSqlite3, "rollback;", nullptr, nullptr, nullptr); >> >> Both commit results with SQLITE_OK. But only the second sample (without >> dash inside the text) inserts the new row. >> >> >> _______________________________________________ >> sqlite-users mailing list >> sqlite-users@mailinglists.sqlite.org >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >> > > > -- > D. Richard Hipp > d...@sqlite.org > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users