for oralce9
1:memo1.lines.clear;
2:memo1.lines.append('insert into aa values(...);');
3:memo1.lines.append('insert into aa values(...);');
4:adoquery.sql.text:=memo1.text;
5:adoquery.execute();
每次执行第5行的时候,都提示“ora 00911 无效字符”
可是我把memo1的内容复制到sql/plus里就能够正确执行,请问我是哪里出了错误?

解决方案 »

  1.   

    memo1.lines.append('insert into aa values(...);');values中如果有字符串的话,需要用两个单引号才能起到引号的作用
      

  2.   

    建议最好直接把sql语句直接写在adoquery.sql.add();里面,用memo转也许会有错误自己看不出来。要不然就用showmessage(adoquery.sql.text);
    来提示看看,你写的sql到底是否正确。
      

  3.   

    这个错误的提示是:“无效字符”
    看一看你的INSERT操作中有没有如“”,这样之类的全角字符
    或是汉字且没有用""括起来什么的呢?
      

  4.   

    如下改看看
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into aa values(...);');
      ADOQuery1.ExecSQL;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into aa values(...);');
      ADOQuery1.ExecSQL;
    end;