ftLongWord, ftShortint, ftByte fehlen in DBCommon.pas

Codegear hat in Delphi 2009 neue Feldtypen eingeführt, z.B. ftLongword. Offensichtlich aber vergessen diese Unterstützung in dbcommon.pas einzubauen. Dies gilt besonders für ftLongword, welches für Word32 Felder benötigt wird. Dies hat insbesondere Auswirkung auf Filterausdrücke, die z.B. bei locate bei Query-Resultsets verwendet werden, da bei Queries ja keine Indexfelder zur Verfügung stehen

Folge: AutoInc-IDs basieren meist auf Word32, versucht man nun ein

Query.locate(‚ID‘,8,[])

so erhält man eine Fehlermeldung: Konstante ist nicht vom richtigen Typ 8.

D.h. eine Locate-Suche über ein AutoInc-ID Feld in einem Queryergebnis fällt flach. Zumindest, wenn Ihre DB bereits Gebrauch macht von den neuen Feldtypen.

Der Fehler ist bereits gemeldet und zwar hier:

http://qc.embarcadero.com/wc/qcmain.aspx?d=74994

Jeder mit EDN-Konto, der von diesem Problem betroffen ist, sollte hier ein Vote abgeben, um ein wenig Druck zu machen.

Angesichts des bevorstehenden Delphi 2010 ist es fraglich, ob es ein weiteres SP gibt, aber zumindest einen Hotfix sollte es doch wenigstens geben.

Natürlich könnte man die dbcommon.pas auch selber fixen, dann muss man aber den VCL-Source Pfad zu seinem Projekt hinzulinken. Ausserdem besteht die Gefahr, dass wenn man keinen Sourcecode für seine DB hat, also eine DCU-Version, man den beliebten Fehler:

bla bla wurde mit einer anderen Version von …. compiliert, wenn die DCUs nicht übereinstimmen.

Nicht optimal, also Voten, damit eine Basis-Funktion wie diese funktioniert.

Bitdefender Internet Security 2018 Lebenslang Edition

Verwandte Themen:


Comments are closed.