Autor Beitrag
af70
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 07.09.04 16:01 
Hallo,

mit welchen Komponenten fährt man am besten, wenn man Firebird Datenbanken benutzen will?

Interbase-Komponenten von Delphi? Zeos? ODBC? Gibt es einen speziellen freien DBExpress-Treiber? Was gibt es sonst für Komponeneten? Wer hat Erfahrungen?

Andreas
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Di 07.09.04 16:06 
hi,

ich selber benutze die IBExpress komponenten vom register Interbase. Empfohlen werden aber entweder die Komponenten FIBPlus oder IBObjects. Kosten leider ein bisserl was.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
af70 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 07.09.04 16:27 
Muss der Interbase-Client installiert werden, wenn man im Programm die Komponenten vom Register Interbase benutzt hat?
djmasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54

Win XP Prof. Tablet PC Edition 2005
D7 Enterprise
BeitragVerfasst: Di 07.09.04 16:53 
Nein, braucht man nicht. Aber ich würde die Finger von denen lassen.

Du hast ja selbst schon welche aufgezählt. Ich benutze zur zeit die ZEOS-Komponenten. Das gute ist sie sind kostenlos. Ein Tutorial findest du hier
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Di 07.09.04 17:54 
djmasi hat folgendes geschrieben:
Nein, braucht man nicht. Aber ich würde die Finger von denen lassen.

Bei den aktuellsten IBExpress, also die vom register Interbase, kann man nicht mehr pauschal dazu raten, die finger davon zu lassen. Die sind stabil und schnell.
Der schlechte Ruf kam früher wohl nicht von ungefähr, habe aber keine schlechten erfahrungen damit gemacht.

Gruß
KEn

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
djmasi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 54

Win XP Prof. Tablet PC Edition 2005
D7 Enterprise
BeitragVerfasst: Di 07.09.04 23:42 
Bei mir laufen die auch ohne Probleme. Aber war es nicht so dass die nicht weiterentwickelt werden? Was machst du dann bei neuen Firebird-Versionen? Könnte es da nicht zu Komplikationen kommen?
af70 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 07.09.04 23:44 
Wie ist es mit ADO und Firebird-ODBC-Treiber? Damit wäre doch die Frage der Kompatibilität von Interbase und Firebird sowie die Zukunft von ZEOS uninteressant.

Andreas
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mi 08.09.04 07:43 
Hi,

will man alle Funktionen einer Datenbank anständig nutzen, muss man auf spezielle Komponenten für diese eine Datenbank zurückgreifen (bei Firebird: FIBPlus, IBObjects oder UIB). Will man die Möglichkeit nutzen auch andere Datenbanken ohne viel Aufwand zu betreiben ans Programm anzuschließen, dann kommen Verbindungsgeschichten wie ADO, oder Zeos ins Spiel.

Die IBX sind schon seit der Version 5 so ausgereift wie andere Komponenten auch, d.h. man kann sie ohne Bedenken nutzen. Der Nachteil: die IBX werde auf Eigenheiten der Firebird-DB NICHT eingehenen, d.h. dass es über kurz oder lang zu Problemen kommen kann.

Die FIBPlus und die IBObjects kosten Geld, von daher schon für viele nicht mehr interessant, wobei beide die Möglichkeit bieten die Komponenten in Freeware-Programmen einzusetzen (allerdings wird ein Splash-Screen beim Start außerhalb der IDE angezeigt). Wenn aber eine der beiden in Frage kommt, dann würde ich zu FIBPlus greifen, da die IBObjects keine Möglichkeit besitzen ein TDataSource anzuschließen. Die bringen zwar ihr eigenen Datenbankkomponenten mit, aber man kann dann halt auch keine anderen anschließen.

Als kostenlose Variante bieten sich aber noch die UIB-Komponenten an. Die sind relativ neu, funktionieren aber wunderbar. Der Nachteil: Es gibt keine vergleichbare Komponenten wie bei den IBX die TIBDataSource. Alle SQL_Statements müssen quasi "manuell" gesetzt und abgeschickt werden, d.h. ein "interaktiver" Einsatz wie bei der TIBDataSet, dass man die TDBEdit Komponenten einfach mit der Datenbankkomponente verbindet, geht (noch) nicht.

Ist aber weiters auch nicht schlimm, wenn man Objekte für den Datenbankzugriff programmiert, die die Visualisierung übernehmen. ISt zwar ein größerer Aufwand, der sich aber bei bestimmten Projekten durchaus lohnt.

Bleibt zum Abschluss noch der FB .NET Treiber: Ganz toll, nur wer will für seine Adressdatenbank, die incl. Programm gerade mal 1 MB groß ist ein 20 MB .NET Framework zum Download anbieten...??

Grüße
Lemmy

P.S.: Link zu UIB: www.progdigy.com/UIB/
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: Di 29.11.05 22:10 
hört sich ja nicht schlecht an. Ich habe da noch ein paar Fragen:

(der Lizenztext scheint etwas versteckt zu sein.)

A) Ist es nun gestattet, diese UIB-Komponenten auch für kommerzielle Zwecke zu verwenden?
B) wie stabil sind diese Komponenten
C) sind die schneller/langsamer oder vergleichbar in der Geschwindigkeit im Vergleich zu IBX und Firebird?

vielen Dank im voraus...

_________________
- Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: Di 29.11.05 23:53 
es ist auf jeden fall ärgerlich, das die Query von UIB nicht die Methoden locate und getfieldnames unterstützt.... ich mache gerade einen versuch, naja schluß für heute

edit: oha createblobstream kennt er auch nicht....
edit2: sorry noch eine Frage: ist die Unterstützung des Im- und Exports in Firebird embedded überhaupt vorgesehen? Wenn nein kann ich mir die Mühe ja sparen. Oder anders formuliert: hast du UIB auch schon mal mit Firebird embedded, statt Firebird ausprobiert? Inklusive der Admin-Funktionen? viele fragen...

_________________
- Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mi 30.11.05 09:22 
Hi,

ja ich verwende die UIB-Admin Geschichte (Backup und Restore) auch mit FB Embedded, meine Tools habe ich schon vor einiger Zeit umgestellt, da die IBX-Admin nur mit einer 6.xer Version der gds32.dll arbeiten.

Vielleicht bin ich etwas "altbacken": Aber zu was brauchst Du CreateBlobStream? Das kannst Du doch jeder Zeit mit nen Blob-Field und SaveToStream,.... lösen.

Was meinst Du mit Import und Export? DIe Geschichte mit den externen Tabellen? Sollte auch in embedded kein Problem darstellen, das wird eher eine Frage der Einstellung sein. Externe Tabellen waren bisher ein Sicherheitsproblem. Das wurde in FB 1.5 insofern entschärft, dass externe Tabellen nur noch in bestimmten Verzeichnissen stehen dürfen (default-Wert), kann man auch anders einstellen. Such mal in der Firebird.conf nach

"External File Paths/Directories"

Grüße
Lemmy

P.S.: Doch glatt vergessen:

Ja, die UIB kann man auch kommerziell verwenden, kann dir die genaue Stelle aber gerade uach nicht nennen wo das steht.

Stbilität: Ich setzte die UIB seit der Version 1.2 auch in ein, zwei kleinen Tools ein (z.B. meinen Datenbank-Updater, der Datenbanken beim Kunden mittels XML-Script updatet), die Umstellung meiner Auftragsverwaltung war mir bisher zu viel Arbeit (200k LOC). Seit der Version 2.0 habe ich auch mein Servicemodul (BackupRestore) auf UIB umgestellt. Mir sind bisher keine außergewöhnlichen Probleme zu Ohren gekommen....

Schnelligkeit: Kommt darauf an. Ich denke jedoch, dass sehr viel Performance durch schlechtes Appliaktions/Datenbankdesign verloren geht und die Geschwindigkeit der Komponenten eher in den Hintergrund rückt. Generell ist meine Meinung: Native Komponenten sollten schneller sein, da die in der "ersten Reihe" sitzen und nicht auf mehreren Hochzeiten tanzen müssen. Deshalb verwende ich lieber UIB als Zeos.

Allerdings sollte man den Aufwand mit den UIB nicht unterschätzen, da durch das read-only TUIBDataSet entweder ein objektorientiertes Applikationsdesign notwendig ist, oder man schreibt sich vermutlich zu tode, da für jede Aktion (Insert/Update/Select,...) eine eigene Query/DataSet notwendig ist, bzw. das Statement immer gesetzt werden muss.... Wenn ich eine neue FB-Applikation schreibe, werde ich UIB verwenden und nicht mehr IBX.

Grüße
Lemmy
dierk
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 30.11.05 12:08 
Ja, dazu kann ich auch etwas sagen:
Ich bin gerade dabei eine komplexe Application von Access mit Jet-Engine zu Firebird zu transferieren.

Zuerst hatte ich dafür die Zeos Komponenten verwenden wollen, doch diese sind wirklich langsam. Dann habe ich die Delphi IB-Komponenten verwendet. War um einiges schneller. Ja, eigentlich so richtig schnell, wie ich mir das eigentlich vorgestellt hatte. Nur muss ich meine Datenbank automatisch gesichert, gepackt und gedingst bekommen, welches nur mit "Admin-Tools" funktioniert. Delphi5 Pro hat diese nicht!
Ok, ich könnte ne neuere Delphi Version kaufen, aber das tut hier nichts zu Sache und würde zunächst noch viel mehr Umbauarbeiten mit sich bringen.
So habe ich mir die UIB-Komponenten mal angeschaut. Sehen auf den ersten Blick super aus. :)
Dann habe ich sie mal eingebunden. Geschwindigkeit ist so schnell wie bei den IB-Komponenten.
Das Einbinden ist aber ein trampeliger Pfad. Ja es ist so wie Lemmy sagt. Es gibt nur eine "Read-Only"-Dataset-Komponente und es ist alles total SQL-basierend und anders.

Z.B.das übliche
Fieldbyname('myfield').asInteger
lautet bei UIB
fields.bynameAsInteger['myfield']

Achtung für alle die ebenfalls JVCL, JCL installiert haben:
Dadurch, dass UIB vor 2 Jahren noch voll in JVCL integriert war, gibt es dort gleichnamige UIB Komponenten! Also bei Installation von JVCL JvUIB deactivieren.
Aber das Problem geht noch weiter. Im Suchpfad muss dann die neuere UIB-Lib vor die JVCL-Libs gestellt werden!
Dadurch ergibt sich aber erneut ein Problem, dass dann JCL/JVCL nicht mehr funktionieren, da die JEDI.INC von den neuen UIB Komponenten eine 2 Jahre alte ist. Also diese von den UIB-Komponenten entweder löschen oder überschreiben mit der aus dem JVCL-Verzeichnis.
Nur so ein Tipp: Ich habe gestern den halben Tag damit verbracht, das herauszufinden!

Also ZEOS kann ich nicht empfehlen, UIB schon, aber sehr gewöhnungsbedürftig.
Amiga-Fan
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 534



BeitragVerfasst: Mi 30.11.05 22:19 
sorry für die späte Antwort...

Zitat:
Was meinst Du mit Import und Export? DIe Geschichte mit den externen Tabellen?


backup - und restore meinte ich damit. Aber die Frage hast du ja jetzt beantwortet.

diesen Satz verstehe ich nicht so ganz:

Zitat:
da für jede Aktion (Insert/Update/Select,...) eine eigene Query/DataSet notwendig ist, bzw. das Statement immer gesetzt werden muss


das fieldbyname nicht mehr funktioniert hatte ich auch schon festgestellt. Locate kann man ja einfach selbst nachbilden. Aber ich denke, der Aufwand addiert sich.

Ich tendiere tatsächlich, wie Lemmy schon gesagt hat, zu einer IBX/UIB-Mischlösung. Beim nächsten Mal würde ich wohl nicht mehr IBX verwenden. Ich halte UIB bis jetzt nicht schlecht, aber eine richtige Aussage kann ich leider noch nicht dazu treffen...

_________________
- Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Do 01.12.05 08:15 
Hi,

wenn Du UIBDataSet verwendest, dann hast Du auch wieder ein locate!

Lemmy