跪求C/C++编程调用mysql的大神,编程实现.sql文件的导入

不是采用在命令行上执行mysql -uusername -ppassword实现,而是通过C/C++调用相应的接口来实现.sql文件的导入,当然第三方库也可以。如果是自己解析.sql文件,这个我知道。

如果确定SQL文件是正确的:
方法一: 直接用system调用 mysql命令导入,前提要装有mysql的客户端;
方法二:如文件不是很大,直接读到一个字符串内,用mysql的接口,直接执行它;
方法二的伪代码:
MYSQL * conn = mysql_init(NULL);
mysql_real_connect(conn, host,user,passwd,dbname,port,NULL,CLIENT_MULTI_STATEMENTS);
mysql_query(conn, "set names SQL文件的编码");
mysql_query(conn, SQL语句);
mysql_close(conn);

注意,执行前最好用 “set names”设置一下你的文件的编码,如果 gbk,则 “set names gbk;"追问

方法一我知道,但不能用,方法二嘛,可以使可以,但不可取,之前我也想过这样做。如果实在没法,只有自己解析了

追答

您能说一下为啥不可取吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-29
.sql本身就是规范的SQL语句了啊,直接执行一行一行的读出来,使用mysql_query去执行应该就可以了吧。追问

有些语句不是按行来划分的。

第2个回答  2014-09-29
可以通过MySQL自己的API函数进行连接,下载源码,看看接口说明。追问

你这是忽悠我把,我知道API函数啊,里面没有啊,亲,当然你看到了可以说说一下

追答

z901dyxz 把API的调用步骤说的挺清楚,mysql_query(conn, SQL语句);就是把.sql语句执行起来。

追问

亲,别开玩笑了,我的问题是导入.sql文件,不是执行.sql文件,要是你试通过了,附上代码,我给你再加20分。mysql_query(conn, SQL语句);指的是语句,但无法执行source | \.

相似回答