我正在尝试在 64 位 Linux 和 LabVIEW 上使用 Sqlite3。
我已经使用不同版本的 SQLITE 源代码成功地为 linux 64 位 (RHEL6) 编译了库。
然后我尝试使用一个简单的示例,使用 LabVIEW 的 2 个现有 SQLITE 包装器调用该库(它们分别适用于 win32/64 和 win32/linux32)。
这个简单的示例执行以下操作(并且在 win32/win64/linux32 上运行良好):
打开连接
如果存在则删除表
CREATE TABLE [MyTable]([Id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,[Temperature] FLOAT NOT NULL,[Sensor] TEXT NULL);
INSERT INTO MyTable(传感器、温度)值(“%s”、“%0.2f”);
- ...
使用 3.8.7 版(最新) 的 sqlite3 :
使用 CREATE TABLE
语句调用 sqlite3_step 时,LabVIEW 崩溃了
使用 3.7.5 版 的 sqlite3 :
我在同一函数调用中遇到 SQLITE_NOMEM
内存不足错误
我对 2 个 LabVIEW 包装器有相同的行为并检查了它们,所以我不怀疑 LabVIEW 代码
有什么建议吗?
最佳答案
您应该询问包装器的作者他们是如何编译 SQLite 的(即他们使用了哪些定义)。我可以向您保证,这与 SQLite 本身无关的可能性非常小。
我想到的一种可能性是您的程序使用了数据库元数据但未在编译时定义(定义 SQLITE_ENABLE_COLUMN_METADATA)。
关于linux - Linux 64 位上的 SQLITE_NOMEM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635506/