|
|
测试删除与重排 ()| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 局_数据库 | Sqlite数据库 | | | | 局_数据库路径 | 文本型 | | | | 局_执行状态 | 逻辑型 | | | | 局_记录集 | Sqlite记录集 | | | | 局_id | 文本型 | | | | 局_name | 文本型 | | |
局_数据库路径 = 取运行目录 () + “\test_demo.db”局_执行状态 = 局_数据库. 打开 (局_数据库路径, 真) 如果真 (局_执行状态 = 假) 返回 ()局_数据库.执行SQL语句 (“DROP TABLE IF EXISTS user_table;”)局_数据库. 执行SQL语句 (“CREATE TABLE user_table (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);”)局_数据库. 执行SQL语句 (“INSERT INTO user_table (name) VALUES ('张三');”)局_数据库. 执行SQL语句 (“INSERT INTO user_table (name) VALUES ('李四');”)局_数据库. 执行SQL语句 (“INSERT INTO user_table (name) VALUES ('王五');”)调试输出 (“删除操作前的数据库状态”)局_记录集 = 局_数据库. 取记录集 (“SELECT * FROM user_table ORDER BY id ASC;”)局_记录集. 打开 () 判断循环首 (局_记录集. 到下一记录 () = 真) 局_id = 局_记录集. 读字段文本值 (“id”, ) 局_name = 局_记录集. 读字段文本值 (“name”, ) 调试输出 (“原始数据 -> ID: [” + 局_id + “] | 姓名: ” + 局_name ) 判断循环尾 ()局_记录集. 关闭 ()数据库_删除并重排ID (局_数据库, “user_table”, 2 )调试输出 (“删除并重排后的数据库状态”)局_记录集 = 局_数据库. 取记录集 (“SELECT * FROM user_table ORDER BY id ASC;”)局_记录集. 打开 () 判断循环首 (局_记录集. 到下一记录 () = 真) 局_id = 局_记录集. 读字段文本值 (“id”, ) 局_name = 局_记录集. 读字段文本值 (“name”, ) 调试输出 (“重排后数据 -> ID: [” + 局_id + “] | 姓名: ” + 局_name ) 判断循环尾 ()局_记录集. 关闭 ()局_数据库. 关闭 ()|
| 数据库_删除并重排ID | 逻辑型 | | |
| 参数_数据库 | Sqlite数据库 | | | | 参数_表名 | 文本型 | | | | 参数_删除的ID | 整数型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 局_SQL_删除 | 文本型 | | | | 局_SQL_重排 | 文本型 | | | | 局_SQL_重置序列 | 文本型 | | | | 局_执行状态 | 逻辑型 | | |
局_SQL_删除 = “DELETE FROM ” + 参数_表名 + “ WHERE id = ” + 到文本 (参数_删除的ID ) + “;”局_SQL_重排 = “UPDATE ” + 参数_表名 + “ SET id = id - 1 WHERE id > ” + 到文本 (参数_删除的ID ) + “;”局_SQL_重置序列 = “UPDATE sqlite_sequence SET seq = (SELECT MAX(id) FROM ” + 参数_表名 + “) WHERE name = '” + 参数_表名 + “';”参数_数据库. 开始事务 (“delete_trans”)局_执行状态 = 参数_数据库. 执行SQL语句 (局_SQL_删除 ) 如果真 (局_执行状态 = 假) 参数_数据库. 回滚事务 (“delete_trans”) 返回 (假)局_执行状态 = 参数_数据库.执行SQL语句 (局_SQL_重排) 如果真 (局_执行状态 = 假) 参数_数据库. 回滚事务 (“delete_trans”) 返回 (假)参数_数据库.执行SQL语句 (局_SQL_重置序列)局_执行状态 = 参数_数据库. 提交事务 (“delete_trans”) 如果真 (局_执行状态 = 假) 返回 (假)返回 (真) |
|