linux - Linux 64 位上的 SQLITE_NOMEM 错误

标签 linux sqlite 64-bit labview

我正在尝试在 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)。

另见此处:http://www.sqlite.org/compile.html

关于linux - Linux 64 位上的 SQLITE_NOMEM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26635506/

相关文章:

c - uint16_t uint8_t 还是 size_t?

php - 运行 Laravel 应用程序时在此服务器上找不到请求的 URL

ios - CoreData iOS App的Sqlite文件位置的位置

c# - Nuget 安装 System.Data.Sqlite 时出现脚本错误

c++ - 无法在 64 位 Visual Studio 环境中打开 mkl_intel_s_dll.lib

linux - 如何使用 Netbeans 编译在 Ubuntu 64 位上实现 Xm 的代码?

linux - 何时以及为何应将 WNOHANG 与 waitpid() 一起使用?

google-app-engine - 为本地开发数据创建负载

assembly - 32位汇编的64位指令

ios - 尝试 JIT 编译方法 '(wrapper delegate-invoke) - System.Net.HttpWebRequest