SQLite查询中的语法错误

时间:2011-02-23 12:29:10

标签: c++ c sqlite

我正在尝试将大量记录插入到SQLite数据库中。如果我尝试使用sqlite3_exec C-API,我会收到上述错误。

代码如下所示:

ret = sqlite_exec(db_p,".import file.txt table", NULL, NULL, NULL);

我知道.import是命令行,但是你可以用任何方式做一个极小时间的极大插入记录。我已经阅读了之前的批量插入代码并尝试进行更改,但这些并未提供所需的结果。

在没有调用中间API的情况下,是否没有办法直接将字符串插入表中?

2 个答案:

答案 0 :(得分:3)

.import很可能无法通过API获得。但是,加速插入是一件至关重要的事情:将它们包装在一个事务中。

BEGIN;
lots of insert statements here;
COMMIT;

如果没有这个,sqlite将需要在每次插入后写入文件以保持ACID原则。该事务让它以后批量写入文件。

答案 1 :(得分:0)

语法错误的答案很可能是,你的字符串没有用SQL语句中的引号括起来。