MIDAS中如何返回TStrings类型的数据?(100分)

  • 主题发起人 主题发起人 RGKJ
  • 开始时间 开始时间
R

RGKJ

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码如下:
server:
function TQueueDataServer.GetGroupList: OleVariant;
var
GroupSet:TGroupSet;
i, len: integer;
strs:TStrings;
begin
strs:=TStringList.Create ;
GroupSet:=TGroupSet.Create('WorkGroup.ini');
try
GroupSet.proGetGroupList(strs);
len:=strs.Count ;
Result := VarArrayCreate([0, len - 1], varVariant);
for i := 0 to len - 1do
Result := strs.Strings;
finally
GroupSet.Free ;
strs.Free;
end;
end;

Client:
var
temp:oleVariant;
i:integer;
strs:TStrings;
begin
Strs:=TStringList.Create ;
Temp:=VarArrayCreate([0,1],varvariant);
temp:=Socketconnection1.AppServer.GetGroupList;
for i:=0 to 1do
strs.Add(Temp);

编译能通过,运行时出错:"invalid argument",
为什么?请各位大虾帮我分析一下,应该怎么写?
 
Temp:=VarArrayCreate([0,1],varvariant);//这句去掉试试看
 
to csz
还是不行,同样的报错.
我在客户端跟踪的时候发现
temp:=Socketconnection1.AppServer.GetGroupList;
执行后,Temp=Unassigned
,各位大虾,没办法了吗?
 
在服务器上跟踪
 
yue_shan说的对,你在服务器上单步跟踪看看,可能是返回的olevaraint不正确
 
跟踪服务器,出现一把小叉,说明可能是服务器有问题,在哪儿呢?
 
to All
问题已经解决,是我在手工申明GetGroupList的时候弄错了,现在我删除重新用TypeLibrary添加GetGroupList后,一切正常,
我要结帖了,散分,要分的都来.
 
打开数据包
 
多人接受答案了。
 
后退
顶部