翻找sqlite的教程,也没有找到怎么用sql语句将本地数据库导出来。网上搜了搜,最后发现只能用sqlite 二进制应用程序将数据库导出来。似乎都没有给出如何在代码里集成这个功能。下面详细说下,怎么将这个功能融合到你的代码里,让此功能形成一个接口函数。
export PATH=/opt/run_my_app/sqlite3/bin:$PATH
3、命令如何写?
"sqlite3 -csv datebasePath \"select ID,NAME,NO FROM "TABLE_NAME" \" > exportFilePath"
sqlite3可导出csv,txt等格式,这里选择导出csv格式。
4、代码示例:
#define TABLE_NAME " TEST " #define EXPORT_FILE "sqlite3 -csv %s \"select ID,NO FROM "TABLE_NAME" \" > %s" void my_table_export(IN handle handle,IN char *export_file_path) { obj_t *p_obj = handle; char tmp[128] = {0}; FILE* cmdFile = NULL; pthread_mutex_t *lock = NULL; if (NULL == export_file_path || NULL == p_obj) { printf("NULL pointer,error!"); return; } lock = &(p_obj->mux); pthread_mutex_lock(lock); snprintf(tmp,sizeof(tmp),EXPORT_FILE,p_obj->datebase_path,export_file_path); cmdFile = popen(tmp,"r"); pclose(cmdFile); pthread_mutex_unlock(lock); }
要点:1)用锁保护导出的数据;
2)用popen;
完。
原文地址:https://www.jb51.cc/sqlite/198674.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。