我花了两天时间试图找出一个非常烦人的简单问题:我正在用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,“没有这样的表:ONE”。数据库文件正确打开。我没有想法。
除此之外,我正试图找出一种使用ifstream打开PDF文件并将其作为BLOB存储在SQLite中的方法。用ifstream打开文件的正确方法是将它存储为二进制文件吗?