请大家看程序这样写对不对?

xiaoming122 2004-09-26 09:28:00
一个操作存储过程的查询,和多次查询,因为没有模拟的数据库,调试极不方便
请大家看看这样能不能行

程序已经编译通过了,不知道能否实现功能

procedure TForm6.Button14Click(Sender: TObject);
var
str1:string;
str2,strsql:string;
begin
//查询病人身份证号码,调试通过
str1:='select social_no from a_patient_mi where inpatient_no='''+str1+'''';
with dm.SFZCX do
begin
close;
sql.Clear ;
sql.Add(str1);
open;
end;

//条件判断 查询病人身份证号码与edit2是否相同
if dm.SFZCX.FieldByName('social_no').AsString=edit2.Text then
begin
form15.Show ;//显示等待窗体

//运行查询病人费用的存储过程
with dm.BRFY do
begin
ProcedureName := 'zy_patient_cmp';
close;

parameters.parambyname('@s_inno').value:= edit1.Text ;
//parameters.parambyname('@').value:= edit2.Text ;
parameters.parambyname('@i_adt').value:=strtoint(edit3.Text);
parameters.parambyname('@start_date').value:=datetimepicker1.DateTime;
parameters.parambyname('@end_date').value:=datetimepicker2.DateTime;
prepared:=true;
ExecProc;
open;
end; //费用查询结束,已经测试通过。form13中dbgrid显示了查询结果。

//运行查询病人信息的存储过程,未进行测试,请大家看一下
with dm.BRXX do
begin
ProcedureName := 'zy_mi_cmp';
close;
Parameters.ParamByName('@s_inno').Value :=edit1.Text;
Parameters.ParamByName('@i_adt').Value :=edit3.Text;
prepared:=true;
execproc;
open;
end;//病人信息查询结束,存储过程返回一条结果记录

//这里截取返回值的字段给form13的label赋值,使用这种方法行不行?
with form13 do
begin
label16.Caption := dm.BRXX.FieldByName('姓名').AsString;
label17.Caption := dm.BRXX.FieldByName('性别').AsString;
label18.Caption := dm.BRXX.FieldByName('年龄').AsString; //int
label19.Caption := dm.BRXX.FieldByName('工作单位').AsString;
label20.Caption := dm.BRXX.FieldByName('入院日期').AsString; //datetime
label21.Caption := dm.BRXX.FieldByName('出院日期').AsString; //datetime
label22.Caption := dm.BRXX.FieldByName('入院科别').AsString;
label23.Caption := dm.BRXX.FieldByName('入院病室').AsString;
label24.Caption := dm.BRXX.FieldByName('出院科别').AsString;
label25.Caption := dm.BRXX.FieldByName('出院病室').AsString;
label26.Caption := dm.BRXX.FieldByName('实际住院').AsString; //int or string
end;

//根据返回科室代码查询本地库,还没有确定好
str2:=返回的科室代码;
strsql:='select * from keshijs where 科室代码='''+str2+'''';

with dm.KSJS do
begin
close;
SQL.Clear;
SQL.Add(strsql);
open;
end;
form13.dbmemo1.DataField :='介绍';

form13.Show ;//显示查询结果的form
form15.close;//关闭等待form

end;
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoming122 2004-09-27
  • 打赏
  • 举报
回复
麻烦各位指点一下啊
xiaoming122 2004-09-27
  • 打赏
  • 举报
回复
今天又没有机会调试
郁闷
flyman307 2004-09-26
  • 打赏
  • 举报
回复
你的加上Form13:=TForm13.create(self);
with Form13 do
begin
……
end;

2,497

社区成员

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

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