0

我花了 2 天时间试图解决一个非常烦人的简单问题:我正在用 C++ 创建一个数据库:

sqlite3 *database;
rc = sqlite3_open(dbname, &database);

char* statement = "CREATE TABLE ONE(ID    INTEGER     PRIMARY KEY AUTOINCREMENT     NOT NULL, NAME           CHAR(50)    NOT NULL, LABEL         CHAR(50), GRP             CHAR(50), FILE         BLOB        );";

rc = sqlite3_exec(database, statement, callback, 0, &zErrMsg);
sqlite3_close(database);

效果很好,使用 SQLite Studio 检查了数据库结构。现在我试图通过执行以下语句插入任何内容:

    int rc = sqlite3_open(dbname, &database);
char *zErrMsg = 0;

char* statement = "INSERT INTO ONE(     ID,    NAME,    LABEL,    GRP,    FILE ) VALUES (     NULL,    'fedfs',    NULL,    NULL,    NULL);";

rc = sqlite3_exec(database, statement, callback, 0, &zErrMsg);


sqlite3_close(database);

这不断向我抛出 SQLite 错误 1,“没有这样的表:一个”。数据库文件确实可以正确打开。我没主意了。

除此之外,我正在尝试找出一种使用 ifstream 打开 PDF 文件并将其存储为 SQLite 中的 BLOB 的方法。是否使用 ifstream 打开文件以将其存储为二进制文件的正确方法?

4

0 回答 0