Hallo,
ich schreibe mir gerade ein Tool um meine Datenbanken (Advantage Database Server Version 8.1) zu dokumentieren.
Dazu verbinde ich mich mit dem entsprechenden Dictionary und befrage die systems-Tabellen. Das funktioniert soweit auch recht gut.
Nur beim Auslesen der Indizes habe ich auf einmal Schwierigkeiten. Den Namen des Index bekomme ich noch, den eigentlichen Index-Ausdruck nicht mehr, dort liefert mir FieldValues['Index_Expression'] nur noch NULL-Varianten zurück.
Gebe ich die entsprechende Abfrage im ARC32 ein, bekomme ich alle Felder ausgelesen.
Irgendwer eine Idee? Hier nun der Code:
Delphi-Quellcode:
dqInd.Active := False;
dqInd.SQL.Text := 'select * from system.indexes where parent = ' + QuotedStr(dqTab.FieldValues['Name']);
dqInd.Active := True;
dqInd.First();
while not dqInd.Eof do begin
oFeld := oChild.AddChild('Indizes');
oFeld.AttributeNodes['Name'].Text := dqInd.FieldValues['Name']; // <- funktioniert noch
oFeld.AttributeNodes['Expr'].Text := dqInd.FieldValues['Index_Expression']; // <- ab hier bekomme ich nur noch NULL zurück!
oFeld.AttributeNodes['Cond'].Text := dqInd.FieldValues['Index_Condition'];
dqInd.Next();
end;
Gruß Jörg