先写一个函数,用来改造edit.text,在每一个单引号后加多一个单引号;
函数返回改造后的字符串,然后再按正常的没有单引号的写法就可以了。

解决方案 »

  1.   

    好像是这样,拼写错误自己查吧。
    with ADOQuery do
    begin
     close;
     SQL.Clear;
     SQL.Add('insert TABLE (field1,field2) values (:a1,:a2)');
     Paramenters.ParamByname('a1').asstring:=Edit1.text;
     Paramenters.ParamByname('a2').asstring:=Edit2.text;
     Execsql;
    end;
      

  2.   

    可以有多种方法啊,你可以在外部,如edit1中的onkeypress事件上输入
    if key='''' then key=#0;这种在edit1框中就不能输入单引号了
    你也可以在程序中用try except来去掉这种错误如:
    Query.SQL.Clear;
    try
      Query.SQL.Add('insert TABLE values (');
      Query.SQL.Add(Edit1.Text)
      Query.SQL.Add(',');
      Query.SQL.Add( Edit2.Text);
      Query.SQL.Add(')');
      Query.SQL.Execsql;
    except
       showmessage(‘有非法字符');
        exit;
    end;
      

  3.   

    Query.SQL.Clear;
    Query.SQL.Add(format('insert TABLE values (''%s'',''%s'')', [Edit1.Text, Edit2.Text]));
    Query.SQL.Execsql;
    或者:
    Query.SQL.Clear;
    Query.SQL.Add('insert TABLE values (');
    try
    Query.SQL.Add(Inttostr(strtoint(Edit1.Text)));
    except 
      showmessage('error');
      exit
    end;
    Query.SQL.Add(',');
    Query.SQL.Add(Inttostr(strtoint(Edit2.Text)));
    except 
      showmessage('error');
      exit
    end;
    Query.SQL.Add(')');
    Query.SQL.Execsql;