当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《如何使用CAPI使用SQLite3import命令?》经验,为你挑选了1个好方法。

我有以下代码:

int rc;
rc = sqlite3_exec(sqlite3_database, ".import mydata.csv mytable", callback, 0, &errMsg);

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

near ".": syntax error

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

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



1> ephemient..:

命令行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", ...);

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

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有