procedure TDM.CDS_ReadBeforeDelete(DataSet: TDataSet);
var
  lpos:integer;
  ltablename:string;
begin
  ltablename:=CDS_Read.CommandText;
  ltablename:=UPPERCASE(ltablename);
  lpos:=pos('NCEPUMIS_DEPARTMENT.GYGL_',ltablename);
  ltablename:=copy(ltablename,lpos,29);
  with CDS_Read do
  begin
    close;
    commandtext:='select * from '+ltablename+' where  ID='
       +Fieldbyname('ID').AsString;
    Execute;
  end;
end;

解决方案 »

  1.   

    close;
     commandtext:='select * from '+ltablename+' where  ID='''
           +Fieldbyname('ID').AsString+'''';
     Execute;
    试试吧;
      

  2.   

    你说错误提示是delphi的还是oracle的?
      

  3.   

    当然是ORACLE的,生成的SQL语句有问题。
    --------------------------------------
    中间动力为您的发展提供源动力。
    http://www.freewebs.com/middleware/
      

  4.   

    把完全生成的SQL语句显示出来研究研究。。((比较容易找到错误
      

  5.   

    执行一下showmessage(commandtext);看看里面出了什么错,注意空格!