如果把这些语句单个执行没错,但是合在一起就会出现问题.
sql1+';commit;'+sql2+...
sql1+';'+sql2+....
sql1+';'+#10#13+sql2+....sql1,sql2...每个都没问题.
我拼接了起来,就出问题了,如果把拼接的语句放到mysql的客户端
那么在sql,sql2,用空格分下就都没问题了,
这到底怎么了啊????

解决方案 »

  1.   

    可以执行多个SQL 语句
      

  2.   

    那有那么复杂,我就是想用Delphi告诉Mysql一次执行多个SQL,但是老不成功.
    咋办涅?
      

  3.   

    拼接后打印出来看看sql是否有语法错误
      

  4.   

    'ALTER TABLE a_areasort MODIFY mingzi varchar(20) NULL ;ALTER TABLE a_areasort MODIFY state int(11) NULL';自己拼接的SQLstr,直接拷贝到mysql客户端则必须+个空格,2个分号任意一个后面添加才能执行
      

  5.   

    sql1+''';commit;'''+sql2+...
    sql1+''';'''+sql2+....
    sql1+''';'''+#10#13+sql2+....
      

  6.   

    3种都实验了.....sqlStr:='';
       for i:=0 to datelist.Count -1 do
       begin
          if i=0 then
            sqlStr:=format('ALTER TABLE %s MODIFY %s %s NULL',     
            [tablename,cloumnlist.Strings[i],datelist.Strings[i]])
          else
            sqlStr:=sqlstr+''';commit;'''+#10#13+format('ALTER TABLE %s MODIFY %s %s 
            NULL',[tablename,cloumnlist.Strings[i],datelist.Strings[i]]);
       end;然后sql.add,execSql.
    报错:check the manual that corresponds to your MySql server version for the right syntax to use near'';commit;;
    ALTER TABLW a_areasort MODIFY state int(11) NULL'at line 1'.process stopped. Use Step or Run to continue;还是中间出问题啊.....
      

  7.   

    把SQl语句输出出来到查询分析器里试试