数据表'表1'中有一字符型字段,字段名为“名称”。在这个字段中含有带单引号的记录如'DDD'。使用SQL查询时系统报错,错误如下:语法错误(操作符丢失)在查询表达式''名称=''DDD''中。
查询语句设置如下:
 Str:='Delete from 表1 Where 名称 ='+ ''''+ X +'''';
 ADOQuery1.Sql.Add(Str);
 ADOQuery1.ExecSQL;
其中X是字符型变量,X的值由X:=ADOTable1.FieldByName('名称').AsString;获得。也就是说以'DDD'形式保存的数据是可以正确读出的,但是查询时不行。
烦请各位帮忙,谢谢!

解决方案 »

  1.   

    Str:='Delete from 表1 Where 名称 =:a';
    ADOQuery1.Sql.Add(Str);
    ADOTable1.FieldByName('a').AsString :='''DDD''';
    ADOQuery1.ExecSQL;这么来
      

  2.   

    Str:='Delete from 表1 Where 名称 ='''+ X +'''';
      

  3.   

    Str:='Delete from 表1 Where 名称 ='':name''';
     ADOQuery1.Sql.Add(Str);
     ADOQuery1.Parameters[0].Value:=X;
     ADOQuery1.ExecSQL;
      

  4.   

    Str:='Delete from 表1 Where 名称 ='+ char(39)+ X +char(39);
     ADOQuery1.Sql.Add(Str);
     ADOQuery1.ExecSQL;
    或者Str:='Delete from 表1 Where 名称 ='+ Quotedstr(X);
     ADOQuery1.Sql.Add(Str);
     ADOQuery1.ExecSQL;