我想用一个函数把数据库中的表名放入一个动态数组中返回,怎么写?

解决方案 »

  1.   

    adoconnection.gettablenames 也许能满足你的要求;
      

  2.   

    var
      tableList: array of String; //定义动态数组
    begin
      SetLength(tableList, length);//设置动态数组长度
      tableList[..] := ...
      ...
    end;
      

  3.   

    我是这样写的,不对(constant object cannot be passed as parameter)
    procedure getalltables(var vtable: OleVariant); safecall;
    procedure Tpsql.getalltables(var vtable: OleVariant);
    var
      tbllist:Tstringlist;
      icount:integer;
      i:integer;
    begin
      try
        tbllist:=Tstringlist.Create;
        adocdsql.GetTableNames(tbllist);
        i:=tbllist.Count;
        setlength(vtable,i);//此句错误
        for icount :=0  to i do
        begin
          vtable[icount]:=tbllist.Strings[icount];
        end;  finally
        tbllist.Free;
      end;end;
      

  4.   

    写成FUNCTION,返回TSTRINGLIST不就成了?