1.第二章:(2-1-4)动态存取远程数据的例子,
照书上说的在IDynamicSQLDemoServer接口中加入一个称为GetAllTable的方法,设置成
Name           Type      Modifier
vTables        VARIANT * [in,out]
然后,在程序中实现这个方法:
procedure TDynamicSQLDemoServer.GetAllTables(var vTables: OleVariant);
var
  tblList:TStringList;
  iCount:Integer;
begin
     try
       tblList:=TStringList.Create ;
       ADOConnection1.GetTableNames(tblList);
       vTables:=VarArrayCreate([0,tblList.Count-1],varVariant);
       for iCount:=0  to tblList.Count-1 do
       begin
         vTables[iCount]:=tblList.Strings[iCount];
       end;
     finally
       tblList.Free;
     end;
end;
编译应用服务器,出现以下错误:Undeclared identifier:'VarArrayCreate',请问是什么意思?
2.还是第二章:(2-1-6)Master/Detail的应用系统的例子
如书上的图2-37,设置客户端的Detail TClientDataset组件DataSetField为clientDataSet1adsDetail,为什么一设置就出错!!

解决方案 »

  1.   

    如第一个问题:编译应用服务器,出现以下错误:Undeclared identifier:'VarArrayCreate',请问是什么意思?该怎么解决?
      

  2.   

    在uses 
    中加上
    Variants;
      

  3.   

    第二个,clientDataSet1adsDetail还要和一个DataSetProvider相连
      

  4.   

    临时使用的table /query用这种动态的方法,一般使用静态就可以了。
    首先要理解:只要ADOConnection1的连接串没错就应当可以连上,至于连上后,你想怎么操作就根据你的情况了,总之,所谓的动态存取我不提倡使用。
    李先生的书太老了,只学习一下思想,别作为捆绑自己的格子;
    Master/Detail用table/query都可以简单的实现,何必呢?
      

  5.   

    to  jpyc(九品御厨——智若愚) :
       谢谢,上回实在是过意不去,让你花了一个多小时的时间,也没问出什么实质性的问题,汗颜,故这几天在家潜心修学,希望能够快速成长!
    to  ljmanage(过客):
       谢谢!我马上试!
      

  6.   

    函数通过HELP可以查出该函数在哪个单元定义的第二个问题,主从表我很少这样用。
      

  7.   

    第一个问题么,请use variants;
    第二个问题么,我也不知道。
      

  8.   

    第一个问题,use variants;
    第二个问题,最好不要这样做,因为效率不高
      

  9.   

    我也在看这本书
    第一问题在implementation部分加入uses Variants;就好了.
    第二个问题,我也遇到了,好像d6和d5中的
    TClientDataSet不太一样.
      

  10.   

    第一个问题就是加入单元 uses Variants第二个问题就是右击ClientDatast 选择Fields Editor   就会出现一个框
    这个框应该很熟悉吧~~, 右击框选择Add all Fields
    然后设置ClientDataset的DataSetField属性,(这个时候那个字段已经自己出来了)
    祝你好运别忘了给我加分哦!
      

  11.   

    第一个问题如果用的是D6以上请use Variants
    第二个问题不好判断可能是你应用服务器没做好