0

我正在尝试使用 WinDev Mobile 21 更新现有的 SQLite 数据库。数据库已存储数据,我不想丢失它。

我已经更新了项目中的分析,将列添加到表中,现在应用程序无法打开它,因为 .db 文件的结构与预期不同。

首先,我想使用 SQL“ATER TABLE”语句并将新列添加到 .db 文件中,但我不知道如何。所以我尝试在打开之前连接到旧数据库,将现有数据复制到临时数据源,删除文件,使用新结构创建一个新文件并将存储的数据复制到其中。

这是我试过的代码,info函数必须返回记录数但返回0。HOpenConnection()和HExecuteSQLQuery()都成功了。

ProductesTemp is Data Source

HDescribeConnection("Temp","","","/sdcard/Android/data/com.dbases/ficheret.db/ficheret.db","ficheret",hNativeAccessSQLite,hOReadWrite)

IF HOpenConnection("Temp") THEN

IF HExecuteSQLQuery(ProductesTemp,"Temp",hQueryDefault,"SELECT * FROM Productes") THEN

    Info("HRecNum: " + HRecNum(ProductesTemp))

ELSE
    Info("HExecuteSQLQuery Error", HErrorInfo(hErrFullDetails))
END

ELSE
    Info("HOpenConnection Error", HErrorInfo(hErrFullDetails))
END
4

1 回答 1

0

您应该检查 HOpenConnection() 和 HExecuteSQLQuery() 是否成功。如果是,它应该返回 true。否则,您应该通过以下方式获取信息:

IF NOT(HOpenConnection("TEMP"))
Info(HErrorInfo(hErrFullDetails))
END

它说什么 ?

于 2016-05-18T15:25:25.490 回答