SQL语句超过固定长度,如何解决这个问题????来者有分

解决方案 »

  1.   

    SQL语句超过固定长度是什么意思?
      

  2.   

    分几次Sql.Add('');来增加语句看看可以不。
      

  3.   

    同意lincanwen(密码错误) 的观点
      

  4.   

    行吗??本身SQL语句有长度的限制,超过了就会忽略超过部分,所以
    ]]求教有什么办法,解决
      

  5.   

    可以sql语句分别赋给不同的字符串变量。
      

  6.   

    用DELPHI5吗?可能是ADO引起的,我曾经遇到过!
    如果是D5,建议升级ado!
    如果真的要使用的SQL语句超长了,那得考虑用存储过程去实现了!
      

  7.   

    如果真的太长,就保存未脚本文件再执行
    master.dbo.xp_cmdshell  'osql  -U  username  -P  password  -i  c:\myquery.sql'
      

  8.   

    可以在存储过程里实现动态SQL语句。再将sql语句当作字符串传到存储过程中执行。
      

  9.   

    以前我也遇到过类似的事情。我把SQL语句定义为常量时,会提示字串太长了;后来我把这些字串用"+"号链接,问题就搞定了;
      

  10.   

    D6中应该不存在ADO升级一说吧
      

  11.   

    那有那么长的SQL语句呀,肯定可以优化的。
      

  12.   

    用sql.add()可以解决的,我也碰到过这种情况,sql.text不存能超过255个字符,超过了用ADD()分割就行
      

  13.   

    定义一个String变量,在最后add进去
      

  14.   

    SQL.Text :=''
      +''
      +'';搞定,绝对没问题,结帖给分吧!
      

  15.   

    我用程序循环,生成的SQL 。用一个屏幕,也没有遇到超长的情况
      

  16.   

    也有这种情况:就是sql语句实在太长了,需要改系统配置
    不过这种情况很难出现的,除非你写个几十K的语句
      

  17.   

    var sSQL:string;
    begin
      sSQL:='select.........';
      sSQL:=sSQL+' from.......';
      sSQL:=sSQL+' where.......';
      adoquery.add(sSQL);
    end;  
      

  18.   

    不会吧
    我用过一个SQL语句有3600个字符
    也没提示错误SQL := ''
         + ''
         + '';
      

  19.   

    SQL语句应该没有长度限制的,我用的SQL也是很长的,在DEBUG里看的都是乱码,但是SQL一样的运行正常,你要确认你的SQL是否正确
      

  20.   

    sql.text:=……;
    sql.loadfrom:=………………
      

  21.   

    不管BDE还是ADO,每次发往数据库系统的SQL的确有一定的长度限制,好像是8K左右,具体长度记不清了.两个办法解决你的问题:
    1:将你的SQL写成存储过程
    2:缩减你的SQL
      

  22.   

    定义一个String变量,在最后add进去!
      

  23.   

    定义一个String变量,在最后add进去!
      

  24.   

    多add()几次就行了,这不是sql超长了,而是你的string太长了!:)
      

  25.   

    不要超过255个字符....ADOQuery没什么事。ClientDataSet的CommandText只能255
      

  26.   

    不要犹豫了,用下面的,绝对没有错SQL := ''
         + ''
         + '';
      

  27.   

    他们说得没错,sql语句太长,我以前也碰到过,你可以分多写来写.
      

  28.   

    var
      sqltxt:string;
    begin
      sqltxt:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.........'
        +'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
        +'cccccccccccccccccccccccccccccccccccccccc'..............;
       adoquery1.add(sqltxt);
       adoquery1.execsql();
    报错\\
    ??????????????
      

  29.   

    應該是一行不能超過255個字符吧
    同意用
    SQL := ''
         + ''
         + '';