请问如何把大段的SQL代码,写到程序里面?

解决方案 »

  1.   

    既然是写到程序里那就分行写吧,adoquery.sql.add('') 写多几个这样的,把SQL语句分几行
      

  2.   

    放一个静态的 ADOQuery 里面写
    为什么都爱用 sql.add 呢?这样做法是 ms 的恶习
      

  3.   

    如果是一两条SQL语句,当然可以放到ADOQuery里面
    但如果执行10条或者更多,怎么用静态的ADOQuery呢?要放10个或更多ADOQuery吗?
    请楼上指教.楼主的一大段SQL不想用存储过程,可以用以下方法
    with adoquery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('你的SQL1');
      SQL.Add('你的SQL2');
      .....
      Parameters[0].Value:=参数;
      ...... 
      OPen;
    end;一个adoquery就够了.
     
      

  4.   

    的确是头疼, C++ 中可以用”\“, 一直不知道DELPHI中有什么相应的。最终还是  create proc ps_myproc as ...了 
      

  5.   

    如果嫌在程序里面分割太麻烦,又不想写死在某个ADOQUERY里,不放考虑动态从文件里加载,反正读进去后程序执行正确就行了。还有就是上面说了,写成SP比较好。
      

  6.   

    这样:
    with   adoquery   do 
    begin 
        Close; 
        SQL.Clear; 
        SQL.text:='select *'+
          ' from abc'+
          ' where a=b'; 
        OPen; 
    end; 
      

  7.   

    超越SQL语句,摆在面前是一个个类类,一个个方法,多个SQL语句用多个类方法来实现
      

  8.   

    放一个 adoquery 在 datamodule 里
    adoquery.sql属性,在里面写,不要在代码里一行行的加
      

  9.   

    定义字符串常量
    const
      //创建临时表
      ctemp = 'insert into ....... '
                  + '.....'
                  + '.....'
                  + '.....'
                  + '.....';
      

  10.   

    不行的,如果是DATABASE连接数据库或是其它情况,缓冲区会不够的。
      

  11.   

    放单独的 SQL 文件里,读入执行。
      

  12.   

    写个存储过程好了,实在要放在程序里面,可以用字符串存放SQL语句好了。
    var
      strsql : string;
    begin
      strsql := 'select ...'
              + '.....';end;
      

  13.   

    可以用
    sql.LoadFromFile('ztzb.txt');
      

  14.   

    定义一个变量(MysqlStr)啊,把SQL赋值给它,然后adoquery.sql.add(MysqlStr) 
      

  15.   

    用adoQuery.LoadFromFile(sFileName) 试试看。