1、Server.exe是DataSanp服务器。 用了一个 TADOConnection 名称为 ADOConnection1 连接Sql Server。
用了一个 TADOQuery 名称为 ADOQuery1 连接ADOConnection1。
用了一个 TDataSetProvider 名称为 RemoteDataSetProvider1 连接ADOQuery1。2、aaa.exe是中间层。
创建了一个TRemoteDataMoudle。
type
TSqlHelper = class(TRemoteDataModule, ISqlHelper)
用了一个 TSQLConnection 名称为 _SQLConnection 连接Server.exe。
用了一个 TDSProviderConnection 名称为 DSProviderConnection1 连接_SQLConnection。
用了一个 TClientDataSet1 连接 DSProviderConnection1。
用了一个 TDataSetProvider 名称为 DataSetProvider1 连接ClientDataSet1。3、test.exe是客户端测试程序。
用了一个TDCOMConnection 名称为 DCOMConnection 来连接中间层(中间层是远程数据模块)。
用了一个 TClientDataSet 名称为 cdsTest 来连接 DCOMConnection。 现在情况如下:
如下代码能正确执行,并返回数据。
cdsTest.Active := False;
cdsTest.DataRequest('select * from table');
cdsTest.Open; 如下代码能不能正确执行。
cdsTest.Active := False;
cdsTest.DataRequest('update table set somefield = 0 where .....');
cdsTest.Execute;
报错如下:cdsTest:Execute not Supportted. 请问为什么不能执行Delele,Update,Insert。只能查询数据。 如果我用独立的exe直接连接Server.exe,那么上面的
cdsTest.Active := False;
cdsTest.DataRequest('update table set somefield = 0 where .....');
cdsTest.Execute;
是可以正确执行的。我的判断是DataSnap服务没有问题。问题应该出在TRemoteDataMoudle这个中间层。
用了一个 TADOQuery 名称为 ADOQuery1 连接ADOConnection1。
用了一个 TDataSetProvider 名称为 RemoteDataSetProvider1 连接ADOQuery1。2、aaa.exe是中间层。
创建了一个TRemoteDataMoudle。
type
TSqlHelper = class(TRemoteDataModule, ISqlHelper)
用了一个 TSQLConnection 名称为 _SQLConnection 连接Server.exe。
用了一个 TDSProviderConnection 名称为 DSProviderConnection1 连接_SQLConnection。
用了一个 TClientDataSet1 连接 DSProviderConnection1。
用了一个 TDataSetProvider 名称为 DataSetProvider1 连接ClientDataSet1。3、test.exe是客户端测试程序。
用了一个TDCOMConnection 名称为 DCOMConnection 来连接中间层(中间层是远程数据模块)。
用了一个 TClientDataSet 名称为 cdsTest 来连接 DCOMConnection。 现在情况如下:
如下代码能正确执行,并返回数据。
cdsTest.Active := False;
cdsTest.DataRequest('select * from table');
cdsTest.Open; 如下代码能不能正确执行。
cdsTest.Active := False;
cdsTest.DataRequest('update table set somefield = 0 where .....');
cdsTest.Execute;
报错如下:cdsTest:Execute not Supportted. 请问为什么不能执行Delele,Update,Insert。只能查询数据。 如果我用独立的exe直接连接Server.exe,那么上面的
cdsTest.Active := False;
cdsTest.DataRequest('update table set somefield = 0 where .....');
cdsTest.Execute;
是可以正确执行的。我的判断是DataSnap服务没有问题。问题应该出在TRemoteDataMoudle这个中间层。
解决方案 »
- 访问互联网的控件并可以保存session和cookie而且要可以使用代理的?
- SQL如何访问,不在SERVER系统下.
- 谁用过FTP控件的UploadRestore续传功能
- TQUERY连接SQL SERVER 后 用POST保存 和 TDATABASE 的BEGIN TRANSACTION有什么区别
- DBCombobox...
- 我给高分的,在线等待
- ://这是过滤数据的图片请问这东西用什么第3方组件来做,好象用EHLIB很难做到这东西
- 请问各位Delphi最常用的版本是多少,是5.5 吗?
- ADOQuery为何在执行insert update等写操作时发生错误?
- 乱了
- 如何使程序不等待SocketConnection.AppServer执行完毕!
- [苏州] 找个DELPHI学徒的工作 工资看着给
这个结构是畸形的.