用c语言的mysql_query()函数执行 source的时候,返回语法错误,
所以我怀疑source仅仅是mysql客户端提供的命令!而非mysql系统的语句!如果是这样,服务器本身有啥方法能够执行一个.sql脚本呢?也就是说通过mysql_query提交一个语句以执行服务器上的一个sql脚本?

解决方案 »

  1.   

    生成BAT文件,再调用,类似
    mysql.exe  -uroot -p123 ZZ < D:\ZZ\QQ.SQL
      

  2.   

    以我怀疑source仅仅是mysql客户端提供的命令!而非mysql系统的语句! 
    -----------
    是的
    如果是这样,服务器本身有啥方法能够执行一个.sql脚本呢?也就是说通过mysql_query提交一个语句以执行服务器上的一个sql脚本?
    -----------------------------
    可以不用连数据库,而是在程序里模拟cmd那样调用mysql客户端就可以了,如:
    mysql -uroot -ppassword -e "source e:/aaa.sql"
      

  3.   


    这个基本上没有办法。除非你的客户端能直接访问服务器的文件夹得到这个文件的内容(一般都不太可能)另外就是你的客户端,可以通过操作系统提交一个后台任务(也需要直接的服务台的访问权限)如果你已经登录在服务器上,则可以直接用楼上的mysql -uroot -ppassword -e "source e:/aaa.sql"mysql -uroot -ppassword < e:/aaa.sql