补全:中途失败就回滚
(每道题开头都有同一段:open_db() 建一个内存 SQLite 库、含 users / notes / files 三张表、交回连接;执行 SQL 用 conn.execute(SQL, 参数元组),取一行用 .fetchone()、取全部用 .fetchall()、新行主键用 .lastrowid。判题机自带 sqlite3。)
(这一节还有:batch_add(conn, uid, texts, fail_at) 一批留言要么全进要么全不进——中途出错就 rollback、成功才 commit;fail_at 指定第几条故意失败。)
补全 batch_add 里出错的处理:中途任何一步抛错,要把这批已插的全撤销。
全部评论