Gwaineg hat folgendes geschrieben: |
hmmmmm ...
ich versteh es irgendwie nicht ganz, hab jetzt einfach mal bei mir reinkopiert und es geht natürlich nicht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| function TSL.test: string; var i:integer; idn:string; begin for i:=0 to qu2.FieldCount-1 do if(qu2.FieldByName(qu.Fields.Fields[i].FieldName).AsString = 'auto_increment')then idn:=qu2.Fields.Fields[i].FieldName; result:=idn; end; |
qu2 ist meine TZQuery
die funktion gibt nach dem aufruf nichts zurück
ich glaub das ist doch nicht das was ich brauche |
Ich werd aus deinem Codebeispiel nicht ganz schlau! Ist qu2 bei dir die ZQuery? Und ließt du hier eine MySQL Datenbank aus?
Also das Bespiel das zu dem ich dir den Link gegeben habe ist speziel für MySQL!
MySQL hat folgende Felder:
-> Field - Type - Null - Key - Default - Extra - Collation - Privileges - Comment
in irgendeinem dieser Felder ist hinterlegt dass es Primäry key ist!
Für AutoInc siehts so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| var ZQuery : TZQuery; ZConnection : TZConnection; with ZConnection do begin Protocol := 'mysql...'; Database := 'test'; Hostname := 'localhost'; User := 'root'; Password := ''; Properties.Values['timeout'] := '5'; try Connect; except if(not Connected)then begin ShowMessage('Verbindung fehlgeschlagen!'); Exit; end; end; end; ZQuery.Connetion := ZConnection; ZQuery.SQL.Clear; ZQuery.SQL.Add('Show full columns from `Testtabelle`'); ZQuery.Open; ZQuery.First; while not ZQuery.Eof do begin if ZQuery.FieldByName('Extra').AsString = 'auto_increment' then begin AutoIncField := ZQuery.FieldByName('Field').AsString; Break; end; ZQuery.Next; end; |