Added test for prepared statements with parameters (doesn't pass so far)
This commit is contained in:
@@ -205,20 +205,28 @@ prepared_test() ->
|
||||
Columns = ["id", "name", "age", "wage"],
|
||||
Abby = {1, <<"abby">>, 20, 2000},
|
||||
Marge = {2, <<"marge">>, 30, 2000},
|
||||
Null = {3, null, 40, 3000},
|
||||
TableInfo = [{id, integer, [primary_key]}, {name, text, [not_null, unique]}, {age, integer}, {wage, integer}],
|
||||
sqlite3:open(prepared, [in_memory]),
|
||||
ok = sqlite3:create_table(prepared, user, TableInfo),
|
||||
sqlite3:write(prepared, user, [{name, "abby"}, {age, 20}, {wage, 2000}]),
|
||||
sqlite3:write(prepared, user, [{name, "marge"}, {age, 30}, {wage, 2000}]),
|
||||
{ok, Ref} = sqlite3:prepare(prepared, "SELECT * FROM user"),
|
||||
?assertEqual(Columns, sqlite3:columns(prepared, Ref)),
|
||||
?assertEqual(Abby, sqlite3:next(prepared, Ref)),
|
||||
?assertEqual(ok, sqlite3:reset(prepared, Ref)),
|
||||
?assertEqual(Abby, sqlite3:next(prepared, Ref)),
|
||||
?assertEqual(Marge, sqlite3:next(prepared, Ref)),
|
||||
?assertEqual(done, sqlite3:next(prepared, Ref)),
|
||||
?assertEqual(ok, sqlite3:finalize(prepared, Ref)),
|
||||
?assertMatch({error, _, _}, sqlite3:next(prepared, Ref)),
|
||||
{ok, Ref1} = sqlite3:prepare(prepared, "SELECT * FROM user"),
|
||||
{ok, Ref2} = sqlite3:prepare(prepared, "SELECT * FROM user WHERE name = ?"),
|
||||
?assertEqual(Columns, sqlite3:columns(prepared, Ref1)),
|
||||
?assertEqual(Abby, sqlite3:next(prepared, Ref1)),
|
||||
?assertEqual(ok, sqlite3:reset(prepared, Ref1)),
|
||||
?assertEqual(Abby, sqlite3:next(prepared, Ref1)),
|
||||
?assertEqual(Marge, sqlite3:next(prepared, Ref1)),
|
||||
?assertEqual(done, sqlite3:next(prepared, Ref1)),
|
||||
?assertEqual(ok, sqlite3:finalize(prepared, Ref1)),
|
||||
?assertMatch({error, _, _}, sqlite3:next(prepared, Ref1)),
|
||||
?assertEqual(Null, sqlite3:next(prepared, Ref2)),
|
||||
?assertEqual(ok, sqlite3:reset(prepared, Ref2)),
|
||||
?assertEqual(ok, sqlite3:bind(prepared, Ref2, ["marge"])),
|
||||
?assertEqual(Marge, sqlite3:next(prepared, Ref2)),
|
||||
?assertEqual(done, sqlite3:next(prepared, Ref2)),
|
||||
?assertEqual(ok, sqlite3:finalize(prepared, Ref2)),
|
||||
sqlite3:close(prepared).
|
||||
|
||||
% create, read, update, delete
|
||||
|
||||
Reference in New Issue
Block a user