有谁成功做过李维的书的(ADO/MTS/COM+ 高级程序设计篇)里的第9章的 更新 的例子吗。 (50分)

  • 主题发起人 主题发起人 sunys
  • 开始时间 开始时间
S

sunys

Unregistered / Unconfirmed
GUEST, unregistred user!
有谁成功做过李维的书的(ADO/MTS/COM+ 高级程序设计篇)里的第9章的 更新 的例子吗。
谁做过,或正在做的。留下QQ好吗。我们讨论一下,多谢了。
 
delphi中的ADO错误太多,造成李维的代码也有数不清的错误。
我曾经试图研究过,但最终放弃了ADO,等他成熟了再说吧。
 
那别人怎么做成MTS/COM+的呢。用QUERY也可以的吧。
 
如果有什么错误你提出来,看我能不能帮你!!!!!
我成功做过 ADO+MTS/COM+SQLServer+Asp
 
当我进行断点调试时,发现
到这句
FMyDM.dcomcPublishers.AppServer.UpdateDatas(vDatas, iMaxError, iErrorCount);
就出现一个叫 INVLID DATA PACKET的错误
 
大家都说李维的书怎么怎么好,可是.......
 
是啊。一定要用到实际中才算好。
 
我成功更新数据了,
需要将dcomcPublishers的connected属性设置为True
可加在UpdateDatas前,代码如下:
procedure TmtsUpdateCoorObj.UpdatePublishers(vDatas: OleVariant;
iMaxError: Integer;
var iErrorCount: Integer);
begin
try
FMyDM.dcomcPublishers.Connected:=True;//added by Steven Pei
FMyDM.dcomcPublishers.AppServer.UpdateDatas(vDatas, iMaxError, iErrorCount);
SetComplete;
except
SetAbort;
end;
end;
 
to wenjunp:十分感谢。我等一会去试试。能否交个朋友呢。有没有QQ。以后我们要用
MTS/COM+来开发,希望以后都交流。谢谢了。
 
按照WINJUNP的方法,可以正确的提交修改数据。
可是我这里还有一个问题,就是每当按下btnPublishers来得到publisher的数据时,
在qCoor := ComtsDemoQueryCoor.CreateRemote('chinaplate');处,弹出对话框,
提示 Use ObjectContext(标题为dllhost),这好象不是错误提示,提示三次后就出现了
正确的结果。我跟踪了一下,提示在PQueryCoorObj_TLB单元中。
class function ComtsDemoQueryCoor.CreateRemote(const MachineName: string): ImtsDemoQueryCoor;
begin
Result := CreateRemoteComObject(MachineName, CLASS_mtsDemoQueryCoor) as ImtsDemoQueryCoor;
end;

按下btnPubApply按钮同样出现此提示。
这是怎么会事?
 
TO chinaplate:你的客户端是不是仿照前面的查询写的呢。我就这样。
 
to sunys:
我平常很少用QQ,你可以发信给我。相互交流,共同提高。
 
wenjunp,按照你的方法,客户端代码我模仿了查询,但是还是不能更新到后台数据库。
你能否把你的客户端代码告知呢。
 
当我进行断点调试时,发现
到这句
FMyDM.dcomcPublishers.AppServer.UpdateDatas(vDatas, iMaxError, iErrorCount);
就出现一个叫 INVLID DATA PACKET的错误,你给我的那句话
我也加了。
FMyDM.dcomcPublishers.Connected:=True。其实这个连接本来就是连上的
 
你可以调试数据模块对象,在下面的语句设置断点,运行客户程序;
dspPublishers.ApplyUpdates(vDatas,iMaxErrors,iErrorCount);
如果根本就执行不到此语句,那还是连接有问题;
我在未设置Conneted为TRUE时,也和你一样进行了跟踪调试,也是出现
INVLID DATA PACKET的错误;
 
我把断点放在这句。就是运行这句后错了。前面对的,没有错误。
dspPublishers.ApplyUpdates(vDatas,iMaxErrors,iErrorCount);
还有客户端怎么写的,我就是按那个查询,你能否把你的客户端写给我看呢。
 
以下是李维编写的客户端源代码
procedure TForm7.btnPubApplyClick(Sender: TObject);
var
uCoor : ImtsUpdateCoorObj;
vDatas : OleVariant;
iErrorCount : Longint;
begin
uCoor := ComtsUpdateCoorObj.CreateRemote('Gordon');
uCoor.UpdatePublishers(cdsPublishers.Delta, 0, iErrorCount);
end;

查询按钮应该是调用查询的协调对象,我不明白你为什么要用它来作更新操作。
 
我不是那个意思,我是说查询和更新的写程序套路是一样的。
我找不到李维的客户端代码,再次谢谢你了。
不过我就是和你一样,但是还是出现INVLID DATA PACKET的错误。
就到dspPublishers.ApplyUpdates(vDatas,iMaxErrors,iErrorCount);这句时。
还有李维是不是每个MTS DATAMODUAL,加了代码,我也加了的。
还有你的客户端vDatas : OleVariant;这个参数好象没有用到。

 
你没有它的原程序吧,给个EMAIL,我发给你。
我没有出现你说的INVLID DATA PACKET(加上FMyDM.dcomcPublishers.Connected:=True),
变量vDatas确实没有用,李维就是这么写的。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部