如何使用C API使用SQLite3 import命令?

Dav*_*nes 1 c sqlite iphone objective-c

我有以下代码:

int rc;
rc = sqlite3_exec(sqlite3_database, ".import mydata.csv mytable", callback, 0, &errMsg);
Run Code Online (Sandbox Code Playgroud)

运行此命令后,errMsg包含以下错误消息:

near ".": syntax error
Run Code Online (Sandbox Code Playgroud)

我假设它无法识别导入命令.但是,在命令行上从sqlite3程序运行它时,此命令有效.

我需要能够直接在我的程序中使用import命令.有没有办法可以做到这一点?我需要使用import命令的原因是因为为CSV文件的每一行执行插入需要超过5分钟,并且import命令需要一瞬间.

eph*_*ent 8

命令行shell .import不是C API的一部分; 该sqlite3工具将其实现为

sqlite3_prepare(..., "INSERT INTO '...' VALUES (?, ..., ?)", ...);
sqlite3_exec(..., "BEGIN", ...);
for (each entry) {
    for (each column) sqlite3_bind_text(..., column, ...);
    sqlite3_step(...);
}
sqlite3_exec(..., "COMMIT", ...);
Run Code Online (Sandbox Code Playgroud)

进行一些错误检查(ROLLBACK如果出现任何问题)并处理准备好的语句(sqlite3_reset,sqlite3_finalize).