⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 capi2.test

📁 一个小型的嵌入式数据库
💻 TEST
📖 第 1 页 / 共 2 页
字号:
#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 + -