请教各位:关于Master/Detail(50分)

  • 主题发起人 主题发起人 yippee
  • 开始时间 开始时间
Y

yippee

Unregistered / Unconfirmed
GUEST, unregistred user!
在使用巢状数据表实现Master/Detail编程时,
我先在本机上建立了一个服务器应用程序,但是我在建立客户端应用
程序时,用SocketConnection连接刚才实现的应用程序服务器时却
说连接失败,
注:我已经打开了Socket Server,而且在SocketConnection的Servername
里找到了建立起的远程数据模块
万望各位大侠指点!!!不胜感激!!
 
消息为:
Exception EOleSysError in module vclmid50.bpl at 0001a321
在事件查看器里是:
服务器没有在限定时间内用DCOM注册
我装的是2000 Server
再加50分
 
这个问题我已经解决了。
现在请教各位另一个问题:
李维的《分布式多层应用》P2-27页定义了GetAllTables方法
但是我在运行程序时,系统说GetAllTables的类型与设定的不匹配
请问这是为什么?
 
把原代码贴出来。。。
李维的《分布式多层应用》P2-27页定义了GetAllTables方法
 
定义GetAllTables;
Return Type:HRESULT
Parameters:
Name Type Modifier
vTables VARIANT* [in,out]
procedure TDynamicSQLDemoServer.GetAllTables(var vTables:OleVariant);
var
tblList:TStringList;
iCount:integer;
begin
tblList:=TStringList.Create;
adocDSQL.GetTableNames(tblList);
vTables:=VarArrayCreate([0,tblList-1],varVarient);
for iCount:=0 to tblList.count-1do
begin
vTables[icount]:=tblList.strings[icount]
end;
finally
.....
 
vTables:=VarArrayCreate([0,tblList-1],varVarient);
错了吧!
是tblList.count-1啊!
不知你所说的是服务器出错还是调用时出错.
 
连接构件的loginprompt为false,将远端数据库的连接时间改大点儿,
原来的默认值为15,改为30或更长即可
 
vTables := VarArrayCreate([0,tblList.count-1],varVariant);
这个程序我试过了,没有问题
 
to :yippee 有拼写错误!!!
定义GetAllTables;
Return Type:HRESULT
Parameters:
Name Type Modifier
vTables VARIANT* [in,out]
procedure TDynamicSQLDemoServer.GetAllTables(var vTables:OleVariant);
var
tblList:TStringList;
iCount:integer;
begin
tblList:=TStringList.Create;
adocDSQL.GetTableNames(tblList);
vTables:=VarArrayCreate([0,tblList-1],varVarient);varVariant
~~~~~~~~~~~
for iCount:=0 to tblList.count-1do
begin
vTables[icount]:=tblList.strings[icount]
end;
finally
.....

下面是我的:
procedure TRDM.GetAllTables(var vTables: OleVariant);
var
tblList:TStringList;
iCount:integer;
begin
try
tblList:=TStringList.Create;
adocDSQL.GetTableNames(tblList);
vTables:=VarArrayCreate([0,tblList.Count-1],varVariant);
for iCount:=0 to tblList.Count-1do
begin
vTables[iCount]:=tblList.strings[iCount]
end;
finally
tblList.free;
end;

end;

Hope it can help!!!

 
这个程序我也试过了,没有问题;仔细检查一下,会pass的。
 
最近好象好多的问题都没有结束了,
是不是都很忙呢?
而且对于一些大的方面的问题,大家都好象没有接触一样,
是不是你们没有用DELPHI了呢?
 
多人接受答案了。
 
后退
顶部