Warum muss es denn ein Array sein?
Ein Liste (z.B. eine Ableitung von TList oder TObjectlist) kann all das leisten, was du brauchst.
Übrigens, schau die mal folgende Deklarationen an:
Delphi-Quellcode:
procedure AddSQLField(data: TSQLData; feld: String; wert: String; utf8enc: Boolean = true);
function InsertSQL(ZQuery: TZQuery; table: String; data: TSQLData): Boolean;
Was fällt auf? Richtig, beides Mal wird TSQLData übergeben.
Eigentlich müsste doch TSQLData eine Klasse sein, dann würde sich Einiges vereinfachen.