請教怎樣將相同部分改寫為procedure

cassie_2008 2008-06-17 08:59:02
if i =1 then
begin
try
dm.ADOQCard.Parameters[0].Value:=dxf;
dm.ADOQCard.Open;
except
dm.ADOQCard.Close;
dm.ADOQCard.Connection:=dm.ADOConnection2;
dm.ADOSelect.Connection:=dm.ADOConnection2;
dm.ADOQCard.Parameters[0].Value:=dxf;
dm.ADOQCard.Open;
FuncUnit.UnConnection;
end;
if dm.ADOQCard.RecordCount>0 then
begin
editno.Text:=dm.ADOQCard.FieldByName('EmpId').AsString;
editname.text:=dm.ADOQCard.FieldByName('EmpName').AsString;
eidtsex.text:=dm.ADOQCard.FieldByName('Empsex').Asinteger;
editposition.text:=dm.ADOQCard.FieldByName('EmpPosition').AsString;
end;
end;
if i =2 then
begin
try
dm.ADOQCard2.Parameters[0].Value:=dxf;
dm.ADOQCard2.Open;
except
dm.ADOQCard2.Close;
dm.ADOQCard2.Connection:=dm.ADOConnection2;
dm.ADOQCard2.Connection:=dm.ADOConnection2;
dm.ADOQCard2.Parameters[0].Value:=dxf;
dm.ADOQCard2.Open;
FuncUnit.UnConnection;
end;
if dm.ADOQCard2.RecordCount>0 then
begin
editno.Text:=dm.ADOQCard2.FieldByName('EmpId').AsString;
editname.text:=dm.ADOQCard2.FieldByName('EmpName').AsString;
eidtsex.text:=dm.ADOQCard2.FieldByName('Empsex').Asinteger;
editposition.text:=dm.ADOQCard2.FieldByName('EmpPosition').AsString;
end;
end;
if i =3 then
begin
try
dm.ADOQCard3.Parameters[0].Value:=dxf;
dm.ADOQCard3.Open;
except
dm.ADOQCard3.Close;
dm.ADOQCard3.Connection:=dm.ADOConnection2;
dm.ADOQCard3.Connection:=dm.ADOConnection2;
dm.ADOQCard3.Parameters[0].Value:=dxf;
dm.ADOQCard3.Open;
FuncUnit.UnConnection;
end;
if dm.ADOQCard3.RecordCount>0 then
begin
editno.Text:=dm.ADOQCard3.FieldByName('EmpId').AsString;
editname.text:=dm.ADOQCard3.FieldByName('EmpName').AsString;
eidtsex.text:=dm.ADOQCard3.FieldByName('Empsex').Asinteger;
editposition.text:=dm.ADOQCard3.FieldByName('EmpPosition').AsString;
end;
end;


...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2008-06-17
  • 打赏
  • 举报
回复
uses adodb;
cassie_2008 2008-06-17
  • 打赏
  • 举报
回复
Thank you very much.
我試了一下,這一句有錯
CurrentADOQ: TADOQuery;
[Error] mainUnit.pas(518): Undeclared identifier: 'TADOQuery'
是不是我其它地方有問題呢?
僵哥 2008-06-17
  • 打赏
  • 举报
回复
这样子简化了之后,是不是应该知道如何改成Procedure了?或者说也没有太多必要改为Procedure了?
僵哥 2008-06-17
  • 打赏
  • 举报
回复

var
CurrentADOQ: TADOQuery;
begin
case i of
1:CurrentADOQ := dm.ADOQCard;
2:CurrentADOQ := dm.ADOQCard2;
3:CurrentADOQ := dm.ADOQCard3
else
Exit;
end;
try
CurrentADOQ.Parameters[0].Value:=dxf;
CurrentADOQ.Open;
except
CurrentADOQ.Close;
CurrentADOQ.Connection:=dm.ADOConnection2;
dm.ADOSelect.Connection:=dm.ADOConnection2; //注意这一行,上面的代码当中后续的是不是都有错误
CurrentADOQ.Parameters[0].Value:=dxf;
CurrentADOQ.Open;
FuncUnit.UnConnection;
end;
if CurrentADOQ.RecordCount>0 then
begin
editno.Text:=CurrentADOQ.FieldByName('EmpId').AsString;
editname.text:=CurrentADOQ.FieldByName('EmpName').AsString;
eidtsex.text:=CurrentADOQ.FieldByName('Empsex').Asinteger;
editposition.text:=CurrentADOQ.FieldByName('EmpPosition').AsString;
end;

end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧