一个操作存储过程的查询,和多次查询,因为没有模拟的数据库,调试极不方便
请大家看看这样能不能行程序已经编译通过了,不知道能否实现功能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;//关闭等待formend;