| 123456789101112131415161718192021222324252627282930313233343536 |
- MODULE SQLiteSmoke;
- (* First end-to-end SQLite binding test: :memory: open/exec/close. *)
- FROM SYSTEM IMPORT ADDRESS;
- FROM SQLite IMPORT SQLiteOk, sqlite3_open, sqlite3_exec, sqlite3_close,
- sqlite3_free;
- VAR
- ExitCode : INTEGER;
- db, errmsg : ADDRESS;
- rc : INTEGER;
- BEGIN
- db := NIL; errmsg := NIL;
- rc := sqlite3_open(":memory:", db);
- IF (rc = SQLiteOk) AND (db # NIL) THEN
- rc := sqlite3_exec(db, "CREATE TABLE t(x INTEGER);",
- NIL, NIL, errmsg);
- IF errmsg # NIL THEN sqlite3_free(errmsg); errmsg := NIL END;
- IF rc = SQLiteOk THEN
- rc := sqlite3_exec(db, "INSERT INTO t VALUES (42);",
- NIL, NIL, errmsg);
- IF errmsg # NIL THEN sqlite3_free(errmsg); errmsg := NIL END
- END
- END;
- IF db # NIL THEN
- IF sqlite3_close(db) # SQLiteOk THEN
- rc := 1
- END
- END;
- IF rc = SQLiteOk THEN
- ExitCode := 42
- ELSE
- ExitCode := 1
- END
- END SQLiteSmoke.
|