📄 capi2.test
字号:
#do_test capi2-5.1 { set VM1 [sqlite3_prepare $DB {SELECT * FROM t2} -1 TAIL] set VM2 [sqlite3_prepare $DB {SELECT * FROM t2} -1 TAIL] set VM3 [sqlite3_prepare $DB {SELECT * FROM t2} -1 TAIL] list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 2 {2 3} {a b {} {}}}do_test capi2-5.2 { list [sqlite3_step $VM2] \ [sqlite3_column_count $VM2] \ [get_row_values $VM2] \ [get_column_names $VM2]} {SQLITE_ROW 2 {2 3} {a b {} {}}}do_test capi2-5.3 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 2 {3 4} {a b {} {}}}do_test capi2-5.4 { list [sqlite3_step $VM3] \ [sqlite3_column_count $VM3] \ [get_row_values $VM3] \ [get_column_names $VM3]} {SQLITE_ROW 2 {2 3} {a b {} {}}}do_test capi2-5.5 { list [sqlite3_step $VM3] \ [sqlite3_column_count $VM3] \ [get_row_values $VM3] \ [get_column_names $VM3]} {SQLITE_ROW 2 {3 4} {a b {} {}}}do_test capi2-5.6 { list [sqlite3_step $VM3] \ [sqlite3_column_count $VM3] \ [get_row_values $VM3] \ [get_column_names $VM3]} {SQLITE_ROW 2 {1 2} {a b {} {}}}do_test capi2-5.7 { list [sqlite3_step $VM3] \ [sqlite3_column_count $VM3] \ [get_row_values $VM3] \ [get_column_names $VM3]} {SQLITE_DONE 2 {} {a b {} {}}}do_test capi2-5.8 { sqlite3_finalize $VM3} {SQLITE_OK}do_test capi2-5.9 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 2 {1 2} {a b {} {}}}do_test capi2-5.10 { sqlite3_finalize $VM1} {SQLITE_OK}do_test capi2-5.11 { list [sqlite3_step $VM2] \ [sqlite3_column_count $VM2] \ [get_row_values $VM2] \ [get_column_names $VM2]} {SQLITE_ROW 2 {3 4} {a b {} {}}}do_test capi2-5.12 { list [sqlite3_step $VM2] \ [sqlite3_column_count $VM2] \ [get_row_values $VM2] \ [get_column_names $VM2]} {SQLITE_ROW 2 {1 2} {a b {} {}}}do_test capi2-5.11 { sqlite3_finalize $VM2} {SQLITE_OK}# Check for proper SQLITE_BUSY returns.#do_test capi2-6.1 { execsql { BEGIN; CREATE TABLE t3(x counter); INSERT INTO t3 VALUES(1); INSERT INTO t3 VALUES(2); INSERT INTO t3 SELECT x+2 FROM t3; INSERT INTO t3 SELECT x+4 FROM t3; INSERT INTO t3 SELECT x+8 FROM t3; COMMIT; } set VM1 [sqlite3_prepare $DB {SELECT * FROM t3} -1 TAIL] sqlite3 db2 test.db execsql {BEGIN} db2} {}# Update for v3: BEGIN doesn't write-lock the database. It is quite# difficult to get v3 to write-lock the database, which causes a few# problems for test scripts.## do_test capi2-6.2 {# list [sqlite3_step $VM1] \# [sqlite3_column_count $VM1] \# [get_row_values $VM1] \# [get_column_names $VM1]# } {SQLITE_BUSY 0 {} {}}do_test capi2-6.3 { execsql {COMMIT} db2} {}do_test capi2-6.4 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 1 {x counter}}do_test capi2-6.5 { catchsql {INSERT INTO t3 VALUES(10);} db2} {1 {database is locked}}do_test capi2-6.6 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 2 {x counter}}do_test capi2-6.7 { execsql {SELECT * FROM t2} db2} {2 3 3 4 1 2}do_test capi2-6.8 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 3 {x counter}}do_test capi2-6.9 { execsql {SELECT * FROM t2} } {2 3 3 4 1 2}do_test capi2-6.10 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 4 {x counter}}do_test capi2-6.11 { execsql {BEGIN}} {}do_test capi2-6.12 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 5 {x counter}}do_test capi2-6.13 { catchsql {UPDATE t3 SET x=x+1}} {1 {database table is locked}}do_test capi2-6.14 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 6 {x counter}}do_test capi2-6.15 { execsql {SELECT * FROM t1}} {1 2 3}do_test capi2-6.16 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 7 {x counter}}do_test capi2-6.17 { catchsql {UPDATE t1 SET b=b+1}} {0 {}}do_test capi2-6.18 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 8 {x counter}}do_test capi2-6.19 { execsql {SELECT * FROM t1}} {1 3 3}do_test capi2-6.20 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 9 {x counter}}#do_test capi2-6.21 {# execsql {ROLLBACK; SELECT * FROM t1}#} {1 2 3}do_test capi2-6.22 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 10 {x counter}}#do_test capi2-6.23 {# execsql {BEGIN TRANSACTION;}#} {}do_test capi2-6.24 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 11 {x counter}}do_test capi2-6.25 { execsql { INSERT INTO t1 VALUES(2,3,4); SELECT * FROM t1; }} {1 3 3 2 3 4}do_test capi2-6.26 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 12 {x counter}}do_test capi2-6.27 { catchsql { INSERT INTO t1 VALUES(2,4,5); SELECT * FROM t1; }} {1 {column a is not unique}}do_test capi2-6.28 { list [sqlite3_step $VM1] \ [sqlite3_column_count $VM1] \ [get_row_values $VM1] \ [get_column_names $VM1]} {SQLITE_ROW 1 13 {x counter}}do_test capi2-6.99 { sqlite3_finalize $VM1} {SQLITE_OK}catchsql {ROLLBACK}do_test capi2-7.1 { stepsql $DB { SELECT * FROM t1 }} {0 1 2 3}do_test capi2-7.2 { stepsql $DB { PRAGMA count_changes=on }} {0}do_test capi2-7.3 { stepsql $DB { UPDATE t1 SET a=a+10; }} {0 1}do_test capi2-7.4 { stepsql $DB { INSERT INTO t1 SELECT a+1,b+1,c+1 FROM t1; }} {0 1}do_test capi2-7.4b {sqlite3_changes $DB} {1}do_test capi2-7.5 { stepsql $DB { UPDATE t1 SET a=a+10; }} {0 2}do_test capi2-7.5b {sqlite3_changes $DB} {2}do_test capi2-7.6 { stepsql $DB { SELECT * FROM t1; }} {0 21 2 3 22 3 4}do_test capi2-7.7 { stepsql $DB { INSERT INTO t1 SELECT a+2,b+2,c+2 FROM t1; }} {0 2}do_test capi2-7.8 { sqlite3_changes $DB} {2}do_test capi2-7.9 { stepsql $DB { SELECT * FROM t1; }} {0 21 2 3 22 3 4 23 4 5 24 5 6}do_test capi2-7.10 { stepsql $DB { UPDATE t1 SET a=a-20; SELECT * FROM t1; }} {0 4 1 2 3 2 3 4 3 4 5 4 5 6}# Update for version 3: A SELECT statement no longer resets the change# counter (Test result changes from 0 to 4).do_test capi2-7.11 { sqlite3_changes $DB} {4}do_test capi2-7.11a { execsql {SELECT count(*) FROM t1}} {4}ifcapable {explain} { do_test capi2-7.12 {btree_breakpoint set x [stepsql $DB {EXPLAIN SELECT * FROM t1}] lindex $x 0 } {0}}# Ticket #261 - make sure we can finalize before the end of a query.#do_test capi2-8.1 { set VM1 [sqlite3_prepare $DB {SELECT * FROM t2} -1 TAIL] sqlite3_finalize $VM1} {SQLITE_OK} # Tickets #384 and #385 - make sure the TAIL argument to sqlite3_prepare# and all of the return pointers in sqlite_step can be null.#do_test capi2-9.1 { set VM1 [sqlite3_prepare $DB {SELECT * FROM t2} -1 DUMMY] sqlite3_step $VM1 sqlite3_finalize $VM1} {SQLITE_OK}do_test capi2-10.1 { sqlite3_finalize 0} {SQLITE_OK}do_test capi2-10.2 { sqlite3_reset 0} {SQLITE_OK}db2 closefinish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -