var tableList: array of String; //定义动态数组 begin SetLength(tableList, length);//设置动态数组长度 tableList[..] := ... ... end;
我是这样写的,不对(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;
tableList: array of String; //定义动态数组
begin
SetLength(tableList, length);//设置动态数组长度
tableList[..] := ...
...
end;
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;