数据导入的时候错误里老是会出现near 'limit 1346720336'...,莫名其妙啊

解决方案 »

  1.   

    filename里的斜扛被PHP的解释器“过滤了”用\\代替\试试
      

  2.   

    不好意思,我以为是PHP的帖子,不过道理应该是一样的
      

  3.   

    是的,使用API提交SQL语句的时候一定要注意对转义的问题!在C API里,有一个mysql_escape_string(tostring, fromstring, fromstrlen)的函数就是实现转义功能的,详细信息请参考mysql手册!
      

  4.   

    应该没错啊,c++中filename=d:mysql\\data\\mydatabase\\mybaseinfo.txt ,'\'是转义符,所以路径应该没错啊
      

  5.   

    不知道我的说法对不对,是这样的:在C API编程中
    filename="d:\\mysql\\data\\mydatabase\\mybaseinfo.txt"
    赋值给strQuery后,字符串已经理解为d:\mysql\data\mydatabase\mybaseinfo.txt
    然后将strQuery提交给mysql,它还是认为没有对"\"转义试试在提交strQuery给mysql前,再使用mysql_escape_string转义一下
      

  6.   

    mysql_escape_string要用到哪个库啊?
      

  7.   

    如果实在不清楚,调试一下,将最后提交给mysql时的strQuery打印出来看看
      

  8.   

    filename='d:/mysql/data/mydatabase/mybaseinfo.txt'
      

  9.   

    呵呵,我一直是按纯C API的方法论述的,重新看楼主的帖子后,楼主是用ADO做的!我对ADO不熟,那使用这样的笨办法试试,就是:
    filename="d:\\\\mysql\\\\data\\\\mydatabase\\\\mybaseinfo.txt"意思是filename这个参数被重叠赋值给其它变量几次,就要使用几层"\"的转义,如果不嫌烦,试试吧,:-)
      

  10.   

    我是在c++builder 中使用,我把libmysqld.lib包含进来了可总是出现错误:libmysqld.lib包含invalid OMD record,type 0x21,怎么解决呢
      

  11.   

    呵呵,我对mysql在c++ builder中的使用不了解了
      

  12.   

    shuixin13(犬犬(心帆)) :我把sql语句写成如下也不行,
    strQuery="Select * from baseinfo into outfile 'd:/mysql/data/db_dzcp/mybaseinfo.txt' ";
      

  13.   

    1种方法我想用mysql_escape_string,但在c++builder 中使用时,我把libmysqld.lib包含进来了可总是出现错误:libmysqld.lib包含invalid OMD record,type 0x21,怎么解决呢
    第2种方法我想直接用strquery=".....",然后直接adoquery->SQL->Add(strquery);但总会出错,没辙了
      

  14.   

    新发现:
    导入时用成功:    strQuery="load data infile 'd:\\\\mysql\\\\data\\\\db_dzcp\\\\mybaseinfo.dzp' into table baseinfo";
        dm1->adoDel->SQL->Add(strQuery);dm1->adoDel->ExecSQL();但导出时还是那个错误:near 'limit 1346720336'...,
    strQuery="Select * from baseinfo into outfile 'd:\\\\mysql\\\\data\\\\db_dzcp\\\\mybaseinfo.dzp' ";
        dm1->adoDel->SQL->Add(strQuery);    dm1->adoDel->Open();
    导出你哪儿错了?
      

  15.   

    汗,怎么会出现  limit 134.......  的呀,
    建议你打开 MySQL 的 SQL 日志,
    然后看看日志里你刚才出错的SQL语句是什么
      

  16.   

    此SQL
    中的语句C++下体现的是
    非正常执行
    根本在于服务器的过滤
      

  17.   

    在my.ini 文件中加入下面一行
    [mysqld]
    log=d:/mysql/log/sql.log
    还是没有日记文件