读书人

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

发布时间: 2013-12-05 22:27:44 作者: rapoo

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的关键字所致

读书人网 >.NET

热点推荐