![]() |
Datenbank: FB • Version: 1.5 • Zugriff über: UIB
UIB, TJvUIBQuery, FieldByName
Hallo #,
ich versuche gerade per UIB auf eine FBDB zuzugreifen, mit Erschrecken stelle ich fest, dass die TJvUIBQuery kein FieldByName, sondern nur ein Fields['field_name'] kann. Ich will eine alte BDE-Anwendung umbauen, und benutze dazu Bridge-Pattern. Ich kann doch jetzt nicht alle FieldByName umändern ! :wall: :wall: , zumal die App als Bde-App noch ein bisserl laufen muss ;( Da ich eh eine eigene Klasse abgeleitet habe, die intern eine (TJvUIBQuery)-Klasse benutzt, kann ich schon noch rumbauen. Die Frage ist, wie kann ich in einer übergeleiteten Klasse FieldByName definieren, dass es wie die Bde-Klasse funktioniert ? Bsp: (TCommonQuery ist eine abstrakte Query-Klasse)
Delphi-Quellcode:
Wie soll ich denn vorgehen ?
type
TUIBQuery = class(TCommonQuery) private FQuery : TJvUIBQuery; public procedure Open; function FieldByName ... ???? procedure TUIBQuery.Open; begin FQuery.Open; end; Ich kann vor Ärger gar nicht denken ;( , wie können die sowas einfach weglassen ???? Das IB kein TDataSet hat, ist klar, aber wie denken die sich den Umstieg einer Bde-Anwendung ??? Heiko |
Re: UIB, TJvUIBQuery, FieldByName
Hallo,
so ein bissel weiter im Quellcode-Studium. Der Eintrittspunkt ist bei der Query.Fields[Name] ja Result := GetAsVariant(GetFieldIndex(Name)); Es muss doch gehen, dass man das irgendwie abstrakter auf eine FieldByName umbauen kann ??? overload klappt ja nicht, weil ja nur der Feldname übergeben wird. Da kann ich ja gleich die Bde nachbauen ! :wall: Jetzt muss ich mir erst mal FIBPlus reinziehen. UIB fällt hier ja komplett aus. Heiko PS: jclSchedule ist unvollständig, UIB ist unvollständig. Haben die überhaupt was, was funktioniert ? (Tschulligung, bin etwas sauer) |
Re: UIB, TJvUIBQuery, FieldByName
Hallo hoika,
liefert den Fields[] nicht den Datentyp TField? FieldByName sieht doch so aus...
Delphi-Quellcode:
Edit: oder gibt es in der Komponente irgendwas was TField liefert?
function FieldByName(const FieldName: string): TField;
Gruss Thorsten |
Re: UIB, TJvUIBQuery, FieldByName
Hallo,
TField ist Teil der Bde (TDataSet). Fields liefert einen TSQLResult, dessen default dann auf obigen GetAsVariant verweist. Somit ist das Query.Fields[] möglich. Sie dachten wohl, einfache Umgehung des TDataSets ... Das dumme ist, dass der Feldtyp erst nach dem Open zur Verfügung steht, naja, dafür muss er nicht wie bei der Bde vorher geladen werden. Ich suche jetzt also nach der Möglichbeit, das FieldByName "irgendwie" zu simulieren. Im Netz stand was von AlexsDataSet (ThirdParty), habe ich mir runtergezogen, aber so richtig ist das nix halbes und nix ganzes. Wenn schon bei den einfachsten Sachen Probleme auftauchen, was soll ich bei anderen machen ? Hat denn keiner ne brauchbare, einfach zu benutzende BDE-Alternative, "zu benutzende" im Sinne, kann man über bridge-Pattern benutzen. Naja, IBObjects geht ja, aber ich will die Bde seeehr einfach ersetzen. Heiko |
Re: UIB, TJvUIBQuery, FieldByName
Am besten auf die Original-UIB-Komponenten wechseln. Die Weiterentwicklung der JVCL-Version wurde eingestellt.
|
Re: UIB, TJvUIBQuery, FieldByName
Hallo,
da hatte ich mich nicht richtig ausgedrückt, es handelt sich um die prodigy UIB's, aktuell 2.1. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz