如何逐条读出文件中的sql语句并且在sqlite3中批量执行 c、C++都可以

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何逐条读出文件中的sql语句并且在sqlite3中批量执行 c、C++都可以相关的知识,希望对你有一定的参考价值。

参考技术A sql是一个文本文件,用文本文件方式打开,读取一条语句后作为字符串;然后用system 函数执行sqlite3 命令,sql文件的内容要作为它的参数。 参考技术B 看源语句,直接用;附号分成。单句去执行。有些是直接用换行分好的。追问

有完整代码吗

追答

我X啊,这个怎么回答。。没有C的,有php的。1读文件,2把文件内容用;分开,如此而已

参考技术C 主人还没给我设置这类话题的回复,你帮我悄悄的告诉他吧~

如何通过更改SQLite3中的现有SQL表通过单个SQL语句添加更多列?

#include <stdio.h> /* needed for vsnprintf */
#include <stdlib.h> /* needed for malloc-free */
#include <string.h>
#include <sqlite3.h>

 char *table[10]    = { "John", "peter", "Nolan" };
 int   i ;
 for(i=0; i<3; i++)
 {
           char *sql1 = "ALTER TABLE names ADD column '%s'",table[i];    
           rc = sqlite3_exec(db, sql1, callback, 0, &zErrMsg);
           if (rc != SQLITE_OK )
           {
                printf("Error: %s:Unable to ALTER the table\n", zErrMsg);
           }
 }
  • 在上面的代码中添加'3'列(例如John,Peter,Nolan),我将SQL语句重新运行了'3'次。
  • 是否有可能通过单个SQL语句(或)提供任何其他API来添加'3'以上的列?

注意:我不想做以下事情

       - Using a loop statement to add the columns.

       - Executing many SQL statements to add the columns.

       - Backup of the existing database and renaming it after adding the columns.
答案

不,您无法在1个单个sql语句中执行此操作,您可以在多行语句的一行中执行此操作。

以上是关于如何逐条读出文件中的sql语句并且在sqlite3中批量执行 c、C++都可以的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3命令读出sqlite3格式的文件内容案例

Sqlite3数据库Python基础操作

数据库sqlite3的使用-基本语法

sqlite的几个常用方法

sqlite3:深入理解sqlite3_stmt 机制

怎么判断sqlite3中某个表是不是已经存在