jedliu 发表于 2009-1-5 21:18:34

数据库操作的疑问?怎么没有提交呢?

如下数据库操作
Global $db_path = "update.db" ;数据库配置信息
_SQLite_Startup() ;加载 SQLite.dll
If Not FileExists($db_path) Then
        MsgBox(16, "数据库错误", "无法打开产品信息数据库,请检查配置文件或数据库文件")
EndIf
_SQLite_Open($db_path)
Dim $rows, $aRow
_SQLite_Query(-1, "SELECT ID FROM UpdateTable where lastUpdateDate != '2009/01/05'or lastUpdateDate is null order by id limit 3", $rows)
While _SQLite_FetchData($rows, $aRow) = $SQLITE_OK
        ;执行相关的操作,此处省略
        ;下面将操作过的ID执行更新操作
        Local $sql = "update updateTable set lastUpdateDate='1-2-1' where id='"& $aRow &"' "
        $err = _SQLite_Exec(-1, $sql)
        MsgBox(0, "操作结果", $sql & ",操作结果" & $err)
WEnd
_SQLite_Close()

可是每次执行更新操作,都没有立即提交更新的操作,
只能够等到所有的结果遍历完了才能够更新数据库,
请问,怎样才能够立即就提交更新的操作呢?
谢谢!

[ 本帖最后由 jedliu 于 2009-1-6 13:37 编辑 ]

jedliu 发表于 2009-1-6 13:51:27

这样的操作是不正确的,因为执行update的语句在query的循环之内,导致update的操作只有等到query的循环结束后才可以提交,

现在我改了一下程序,使用_SQLite_GetTable2d 将query结果取得放到数组中,

然后遍历数组在执行更新的操作即可。

具体的帖子,可以参考 http://www.autoitscript.com/forum/index.php?showtopic=87170
页: [1]
查看完整版本: 数据库操作的疑问?怎么没有提交呢?