首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi程序有关问题,请高手指教

2013-12-05 
delphi程序问题,请高手指教以下这段代码老是报错。var ms:stringma:Booleanbegintryorcqry2.Closeorcqry

delphi程序问题,请高手指教
delphi程序有关问题,请高手指教以下这段代码老是报错。
   

var ms:string;
    ma:Boolean;
begin
   try
     orcqry2.Close;
     orcqry2.SQL.Text:='select id from wzrmyy.itf_wzrm_brssb order by id';
     orcqry2.Open;

     sqlqry2.Close;
     sqlqry2.SQL.Text:='select operationid from mz_operation order by operationid';
     sqlqry2.Open;
     with orcqry2 do
     begin
       First;
       while not Eof do
       begin
         ms:=orcqry2.FieldValues['id'];
         ma:=sqlqry2.Locate('operationid',ms,[loCaseInsensitive]);
         if ma=False then
          begin
             //ShowMessage(QuotedStr(ms));
             orcqry.Close;
             orcqry.SQL.Text:='select * from wzrmyy.itf_wzrm_brssb where id='+quotedstr(ms);
             orcqry.Open;
             with sqlqry do
               Close;
               SQL.Text:='insert into mz_operation (pid,operationid,operation,doctor,doctorcode,assistant,assistantcode,starttime,endtime,emergency,'
                                                   +'anesthesia,anesthetist,anesthetistcode,anereg,applicationtime,applicant,applicantcode,diagns,comment,type) '
                +' values ('+QuotedStr(orcqry.FieldValues['PATID'])+','
                        +QuotedStr((orcqry.FieldValues['ID']))+','
                        +QuotedStr(orcqry.FieldValues['OPERATION'])+',';
               if orcqry.FieldValues['ZSZNM']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                  SQL.text:=SQL.text+'null,';
                end else
                  begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['ZSZNM'])+',';
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['ZSZID'])+',';
                  end;
               if orcqry.FieldValues['YZNM']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['YZNM'])+',';
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['YZID'])+',';
                  end;
               if orcqry.FieldValues['STARTTIME']=null then
                begin
                  SQL.text:=SQL.text+'null,';


                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(FormatDateTime('YYYY-MM-DD HH:MM:SS',orcqry.FieldValues['STARTTIME']))+',';
                  end;
               if orcqry.FieldValues['ENDTIME']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(FormatDateTime('YYYY-MM-DD HH:MM:SS',orcqry.FieldValues['ENDTIME']))+',';
                  end;
               if orcqry.FieldValues['EMERGENCY']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['EMERGENCY'])+',';
                  end;
               if orcqry.FieldValues['ANESTHESIA']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['ANESTHESIA'])+',';
                  end;
               if orcqry.FieldValues['MZSNM']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                  SQL.text:=SQL.text+'null,0,';
                end else
                  begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['MZSNM'])+',';
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['MZSID'])+',0,';
                  end;
               if orcqry.FieldValues['APPLICATIONTIME']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(FormatDateTime('YYYY-MM-DD HH:MM:SS',orcqry.FieldValues['APPLICATIONTIME']))+',';
                  end;
               if orcqry.FieldValues['APPLICANT']=null then
                begin
                  SQL.text:=SQL.text+'null,';


                  SQL.text:=SQL.text+'null,';
                end else
                  begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['APPLICANT'])+',';
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['APPLICANTCODE'])+',';
                  end;
               if orcqry.FieldValues['DIAGNS']=null then
                begin
                  SQL.text:=SQL.text+'null,';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['DIAGNS'])+',';
                  end;
               if orcqry.FieldValues['DSPT']=null then
                begin
                  SQL.text:=SQL.text+'null,1'+')';
                end else
                   begin
                    SQL.Text:=SQL.Text+QuotedStr(orcqry.FieldValues['DSPT'])+',1)';
                  end;

              Memo1.Text:=SQL.Text;
              ExecSQL;

          end;
           Next;
         end;
     end;
      ShowMessage('手术信息数据更新成功');
     except
      ShowMessage('没有可更新的手术信息数据');
   end;
[解决办法]
执行一下Memo1.Text里面的SQL语句,看看是什么问题。

ORA-01747: user.table.column, table.column 或列说明无效
原因之一是sql语句拼接错误,多了逗点;二是使用到了oracle的关键字所致 

热点排行