关于李维<<分布式多层应用系统篇>>的一个例子(50分)

  • 主题发起人 主题发起人 gzreren
  • 开始时间 开始时间
G

gzreren

Unregistered / Unconfirmed
GUEST, unregistred user!
在第三章 3-13页
中form1.clientdataset1连到那去
clientdataset1.providername没有任何选择的东西
 
问题提前
 
这个问题。。。
provider是Connection提供的。。
你查查DcomConnection或什么其他Connection激活了没有
Connection获取的Provider是应用服务器的DataSetProvider提供的
你的应用服务器编译注册了没有?
 
能将你的isapi的文件让我试一下吗?我老是试不行,
那个类似dbgrid的控件没有显示出来,只有那些navigator按钮,
一单击按钮又提示“datagrid1_disp”未定义,
不知是我机子还是我程序的问题?
 
在两个TDataSetProvider的OnUpdateData中都有写:
Form1.ClientDataSet1.Data := DataSet.Data;
所以ClientDataSet1是用客户端传来的更新数据赋值的,没有也不用连到任何地方。
 
3——14页第五行
 
真是同病相怜啊,我也遇到了类是问题,原来用delphi编译好的,用dcom连接时,clientdataset.provider
name可见,但过一端时间后,由于环境问题,怎么修改也不行。我感觉有可能是dephi自己的问题:
我在providername中写入provider1,返回错误:provider1 not export;but 我已经设provider1.exported:=
true;
我观察:可能是remotedatamoudle的问题:
TRemoteDataModule = class(TDataModule, IAppServer)
有:FProviders: TList;//providers列表
function GetProvider(const ProviderName: string): TCustomProvider;
virtual;
procedure RegisterProvider(Value: TCustomProvider);
virtual;//??主车
procedure UnRegisterProvider(Value: TCustomProvider);
virtual;
IAppServer = interface(IDispatch)
function AS_GetProviderNames: OleVariant;
safecall;
我感觉调用过程是:(查找providernames列表),先调用TRemoteDataModule的基接口IAppServer,
然后再调用自己的getprovider,可delphi没给出具体实现方法,还希望各位高手。。。
 
大家好!
我也刚开始学三层,我试了李维的例子。好象是在服务器端将客户端正处于交易中的
数据反应在服务器的Dbgrid中,所以没连接任何Provider,但是我发现了一个问题,李
维例子中地第一个StirngGird老是只能显示NewValue,OldValue一直是NULL,但不应该
是这样。因为交易中存在OLdValue和NewValue,为什么没有OldValue,请各位赐教!
 
后退
顶部