2013年12月4日 星期三

[Delphi]設定Record Array不定長度

從資料庫抓取資料出來時,卻不確定筆數有幾筆,可以用這種方式,在將資料庫資料抓出來後,設定陣列的長度空間並放入資料。

定義結構 Record 及 Array

type
RDBData = Record
A:Integer;
B:String;
end;
ARDBData = Array of RDBData;


設定 Array 長度



function GetData: ARDBData;
var
dbData: ARDBData;
i: Integer;
begin
...
dbQuery.SQL.Text := 'SELECT * FROM [User]';
dbQuery.Open;

SetLength(dbData, dbQuery.RecordCount);
for i := 0 to dbQuery.RecordCount - 1 do begin
dbData[i].A := dbQuery.Fields[0].AsInteger;
dbData[i].B := dbQuery.Fields[1].AsInteger;
dbQuery.Next;
end;
Result := dbData;
...
end;



可以注意到,也可以回傳陣列沒問題


沒有留言:

張貼留言