我照系统篇的动态存取的例子写了getAllTables(取表名)方法如下:
procedure Tsocketserver.getAllTables(var vTables: OleVariant);
var
 tblList:TstringList;
 iCount:integer;
begin
  tblList:=TstringList.Create ;
  adoCSQL.GetTableNames(tblList);
  vTables:=VarArrayCreate([0,tblList.Count -1],varVariant);
  for iCount:=0 to  tblList.Count -1 do
  begin
   vTables[iCount]:=tblList.Strings[iCount];
  end;  
end;客户端单击事件代码:
procedure TForm2.Button1Click(Sender: TObject);
var
 vtblList:Variant;
 iCount:integer;
begin
  socketConnection1.Connected :=true;
  vtblList:=socketConnection1.AppServer.getAllTables(vtblList);//这一句不执行getAllTables里面的代码
  if (VarIsArray(vtblList)) then
   begin
    for iCount:=VarArrayLowBound(vtblList,1) to
                VarArrayHighBound(vtblList,1) do
      begin
       listBox1.Items.Add(vtblList[iCount]);
      end;
    end;
 end;end.恳请大虾们指点