我想用adoquery将我的一条sql语句放到我的数据库表里面,用的是adoquery.sql.add();但是会报错,因为我要保存的sql语句里面有sql的关键字,所以……

解决方案 »

  1.   

    adoquery.sql.add('insert into table values('+memo.text+')');
      

  2.   

    adoquery.sql.add('insert into abc(a) values('select * from abc')');
      

  3.   

    加入 uses strUtilsadoquery.sql.add('insert into abc(a) values(' + AnsiReplaceText(YourSQL,'''','''''')   + ')');
      

  4.   

    adoquery.sql.add('insert into abc(a) values(''select * from abc'')');
      

  5.   

    adoquery.sql.add('insert into table values(:str_sql)');
    adoquery.parameters.parambyname('str_str'):='你的sql语句';
      

  6.   

    不好意思,楼上的,我看不懂,能帮忙解释一下嘛?to scsun(明月清风):我试过了,还是不行,先谢谢了!
      

  7.   

    adoquery.sql.add('insert into abc(a) values(''select * from abc'')');把你保存的SQL当作字符串存进去!上面的SQL就是:
    insert into abc(a) values('select * from abc')       因为delphi里''就是指一个字符'
      

  8.   

    这样试试
    -----------------------------------------------------------------
    加入 uses strUtilsadoquery.sql.add('insert into abc(a) values(''' + AnsiReplaceText(YourSQL,'''','''''')   + ''')');
    -----------------------------------------------------------------AnsiReplaceText那个表达式是把 YourSQL 中的 ' 替换成 ''  因为 SQL Server中如果要在字串中使用 单引号,前面也要加转意字符单引号,所以就是两个单引号。