TFDataset.FieldByNumber wird nicht erkannt

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
ornarbo
Beiträge: 2
Registriert: Di 28. Aug 2012, 18:26

TFDataset.FieldByNumber wird nicht erkannt

Beitrag von ornarbo »

Hallo Experten,
Wer hat schon mit FieldByNumber gearbeitet?
Ich will auf eine Access Tabelle (über TODBCConnection) zugreifen, die Feldnamen mit französischen Zeichen (Entrée) enthält.
FieldByName geht mit Feldern ohne diese Besonderheiten.
Gemäss der Dokumentation zu TDataSet müsste ich mit FielByNumber arbeiten können.
Der Compile findet diese Funktion aber nicht (No member fieldbynumber):
hier mein Quelltext:
sqlBs1.SQL.TEXT := SQLT;
sqlBS1.active := True;
sqlBS1.Edit;
sqlBS1.FieldByName('Controle').AsString := DateToStr(now()); // läuft
sqlBS1.FieldByNumber(16).AsString := DateToStr(now()); // wird nicht kompiliert
sqlBS1.Post;
sqlBS1.UpdateMode := upWhereAll;
sqlBS1.ApplyUpdates;
sqlTFIX.commit;

(Lazarus 1.4.4 32Bit, WINDOWS 10 HOME 64 BIT
Meine Version 8.3 von dBasePlus, gibt es nur für Windows, arbeitet einwandfrei mit dem ODBC-Treiber von MS für ACCESS)

Wer hat eine Idee?

Es wäre so schön, von WINDOWS zu Linux zu gehen .....

wp_xyz
Beiträge: 4885
Registriert: Fr 8. Apr 2011, 09:01

Re: TFDataset.FieldByNumber wird nicht erkannt

Beitrag von wp_xyz »

ornarbo hat geschrieben:Gemäss der Dokumentation zu TDataSet müsste ich mit FielByNumber arbeiten können.

Welche Dokumentation ist das denn? In der chm-Datei, die sich bei Lazarus 1.6, 1.4.6 und wahrscheinlich auch älter öffnet, steht davon nichts.

In ähnlichen Fällen: Mit gedrückter Ctrl-Taste auf den Bezeichner "TDataSet" klicken - das öffnet die Unit, in der TDataset deklariert ist. Etwas nach unten scrollen, und du findest alle Prozeduren und Properties, die TDataSet unterstützt. Das ist der Quelltext, also aktueller als jede Dokumentation.

Du findest so auch die Eigenschaft Fields: TFields --> nimm doch TDataset.Fields[index].

ornarbo
Beiträge: 2
Registriert: Di 28. Aug 2012, 18:26

Re: TFDataset.FieldByNumber wird nicht erkannt

Beitrag von ornarbo »

Vielen Dank! So klappt das.
Ich hatte fieldByNumber in der Dokumentation: http://lazarus-ccr.sourceforge.net/docs ... taset.html
gefunden.
Man sieht manchmal den Wald vor lauter Bäumen nicht!

Otto

wp_xyz
Beiträge: 4885
Registriert: Fr 8. Apr 2011, 09:01

Re: TFDataset.FieldByNumber wird nicht erkannt

Beitrag von wp_xyz »

Leider sind auch noch falsche Bäume dabei. Du hast recht, diese Hilfedatei gibt es tatsächlich, und es ist blamabel, dass sie auch noch für der aktuelle Trunk-Version von Lazarus geöffnet wird. Ich habe das als Bug gemeldet. Mein Hinweis, dass das nicht in der aktuellen chm-Datei stehe, bezieht sich auf eine Version der Online-Hilfe, die ich selbst erzeugt hatte.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: TFDataset.FieldByNumber wird nicht erkannt

Beitrag von theo »

Warum denn?

Code: Alles auswählen

function  FieldByNumber(FieldNo: Longint): TField;  


Existiert doch für TDataSet. Ist bloß nicht public sondern protected wie im Help auch verzeichnet.

wp_xyz
Beiträge: 4885
Registriert: Fr 8. Apr 2011, 09:01

Re: TFDataset.FieldByNumber wird nicht erkannt

Beitrag von wp_xyz »

Oh Blamage... Ja, man sieht den Wald vor lauter Bäumen nicht.

Antworten