三层结构中记录体传递程序实现:(100分)

  • 主题发起人 主题发起人 xbhuang
  • 开始时间 开始时间
X

xbhuang

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构中记录体传递程序实现:
我想在三层中通过记录体传递内容该如何实现。网上其他朋友的我有了但还是不行哪位能实现给200大洋急用。
最好发一段完整可运行的测试程序原码!
 
在服务器端把记录体内容赋给Variant,然后在客户端把Variant赋给记录体变量.
 
以前的代码,就是乱点
_tlb
procedure Mzhj(CfStru: OleVariant;
CfItemStru: OleVariant;
var AccountRec: OleVariant);
safecall;
输出
procedure Mzhj(CfStru: OleVariant;
CfItemStru: OleVariant;
var AccountRec: OleVariant);
dispid 1;

数据模块
procedure Mzhj(CfStru, CfItemStru: OleVariant;
var AccountRec: OleVariant);
safecall;
procedure TMediObj.Mzhj(CfStru, CfItemStru: OleVariant;
var AccountRec: OleVariant);
var PrescrpStru:TPrescriptionStru;
tmpAccountRec:TAccountRec;
// FPatient:TPatient;
begin
// tmpmzcfItems.Data:=CfItemStru;
TmpMzcfk.Data:=CfStru;
Tmpmzcfk.Open;
Tmpmzcfk.First;
TmpmzcfItems.Data:=CfItemStru;
TmpmzcfItems.Open;
// FPatient:=TPatient.Create(Self);
try
PrescrpStru.PrescriptionID:=-1;
PrescrpStru.Date:=Date;
PrescrpStru.SectionID:=Tmpmzcfkksid.Value;
PrescrpStru.DoctorID:=Tmpmzcfkdrid.Value;
prescrpStru.TableID:=TmpmzcfktblID.Value;
Prescrpstru.UserID:=TmpmzcfkUserid.Value;
prescrpStru.Cost:=tmpmzcfkcb.Value;
prescrpstru.sum:=Tmpmzcfkje.Value;
PrescrpStru.bh:=Tmpmzcfkbh.Value;
PrescrpStru.mzh:=Tmpmzcfkmzh.Value;
PrescrpStru.bmid:=TmpMzcfkBmid.Value;
PrescrpStru.PatientType:=TPatientType(TmpmzcfkPatientID.Value);
tmpAccountRec:=FPatient.Mzhj(PrescrpStru,tmpMzcfItems);
AccountRec[1]:=tmpAccountRec.js;
AccountRec[2]:=tmpAccountRec.bs;
AccountRec[3]:=tmpAccountRec.bxje;
AccountRec[4]:=tmpAccountRec.zfje;
AccountRec[5]:=tmpAccountRec.cfzfj;
AccountRec[6]:=tmpAccountRec.cfzje;
AccountRec[8]:=tmpAccountRec.bmid;
//cfh
finally
// FPatient.Free;
end;
end;
客户端
var value:boolean;
MyArray:olevariant;
begin
Myarray:=VarArrayCreate([0,8], varVariant);
MyArray[1]:=0;
//js
MyArray[2]:=0;
//bs
MyArray[3]:=0;
//bxje
MyArray[4]:=0;
//zfje
MyArray[5]:=0;
//cfzfj
MyArray[6]:=0;
//cfzje
DM.TmpMzcfk.First;
while not DM.TmpMzcfk.Eofdo
begin
DM.TmpMzcfk.Delete
end;
DM.TmpMzcfk.Insert;
DM.tmpMzcfkKsid.Value:=Editks.ItemsEx[EditKs.ItemIndex].ImageIndex;
DM.TmpMzcfkdrid.Value:=EditDr.ItemsEx[EditKs.ItemIndex].ImageIndex;
DM.TmpMzcfkUserID.Value:=P_UserID;
DM.TmpMzcfkPatientID.Value:=EditBrlx.ItemIndex;
DM.TmpMzcfkbh.Value:=Editbh.Text;
Dm.TmpMzcfkmzh.Value:=EditMzh.Text;
DM.TmpMzcfkbmid.Value:=bmid;
DM.TmpMzcfk.Post;
jshj;
DM.SharedConnMedi.AppServer.Mzhj(DM.TmpMzcfk.Data,Dm.tmpmzcfItems.Data,MyArray);
if MyArray[3]+MyArray[4]=0 then
begin
showMessage('处方保存失败');
end else
begin
Editje.Text:=(MyArray[6]);
Editbxje.Text:=MyArray[3];
Editzfje.Text:=MyArray[4];
Edityjk.Text:=MyArray[5];
EditCfh.Text:=MyArray[8];
end;
ClearCtrl(False);
EmptyCfk;
CfModified:=False;
value:=True;
MainForm.ApplicationEvents1Idle(mainForm,Value);
EditBrlx.SetFocus;
// BtnNewPrescrpClick(BtnNewPrescrp);
end;
 
定义一个OLEvariant型的数据集,把符合条件的记录出来再通过.data属性传送给数据集
 

Similar threads

回复
0
查看
995
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部