AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi CRLab oder FIBPlus als BDE-Ersatz

CRLab oder FIBPlus als BDE-Ersatz

Ein Thema von hoika · begonnen am 17. Aug 2007 · letzter Beitrag vom 29. Okt 2007
Antwort Antwort
Seite 9 von 9   « Erste     789
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
262 Beiträge
 
Delphi XE5 Enterprise
 
#81

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 22. Okt 2007, 13:47
Hallo Peter,

Zitat:
So jetzt habe ich Fibplus im Haus und den direkten Vergleich zu IBObjects und IBX.
Mein erster Eindruck:
Beim Vergleich mit den anderen beiden Tools benötigen Fibplus Abfragen etwas mehr Zeit.
Zu diesem Vergleich gibt es ein ganzes Buch (Titel/Autor muß ich erst nachsehen).
Dort wird festgestellt, dass die Komponenten für die Operationen wie Prepare, Open, Fetch, Close, Commit,
Rollback usw sehr unterschiedlich viel Zeit benötigen. Es kommt also sehr auf den konkreten Fall an.
Häufig war jedoch FibPlus am schnellsten.
Ein erster Eindruck wird da wahrscheinlich nicht reichen.

Zitat:
Es kann Zufall sein, aber ich bin am Anfang gleich über 2 Bugs gestolpert.
z.B. pFIBDatabase1.GetTableNames(Tiel,System);
Ist System false, dann werden nur Usertabellen aufgelistet.
Fragt man im folgenden Schritt nach Systemtabellen (System=true), dann erhält man eine leere Liste.
Schaut man in den Quelltext dann sieht man, das die Filterclausel Params[0] zugewiesen wird.
Bei einer erneuten Abfrage mit System=true wird diese nicht gelöscht.
Workaround Filter vor Abfrage manuell löschen.
Kann ich nichts dazu sagen, da ich GetTableNames() noch nie benötigt habe.

Zitat:
Dann habe ich noch ein kleines Verständnisproblem.
Der Parametereditor läßt die Auswahl des Datenprotokolls zu. (NETBUI, TCP/IP).
Die getroffene Auswahl wird aber nirgendwo gespeichert.
In DbParams wird kein Eintrag generiert.
Das wird nicht in in den DbParams sondern im DBName gespeichert.
TCP/IP: server:lw:\pfad
NetBEUI: \\server\lw:\pfad
Novel SPX: server@lw:\pfad

Zitat:
Eine Datenbank läßt sich im Komponenteneditor nur über NETBUI öffnen.
Der Dateiname wird in Server und Dateiname gesplittet und dann nicht immer korrekt zusammengesetzt.
Gebe ich die Parameter aber nur im Objectinspector ein (Databasename und dann Connected) funktioniert es.
Kann ich nicht nachvollziehen, läuft bei mir korrekt über TCP/IP und NETBUI.

Zitat:
Query und Dataset sind im Vergleich etwas gewöhnungsbedürftig.
Was vergleichst du und was ist gewöhnungsbedürftig?

Zitat:
Eine SQL Abfrage ohne Transaction scheint nicht zu gehen.
Es gibt keine SQL Abfrage ohne Transaction, auch ein SELECT läuft immer in einem Transaction-Context!
Wenn du explizit keine Transaction verwendest, so wird auf jeden Fall implizit durch die
Componenten eine benutzt.

Eine Transaction ist in erster Linie die Sicht auf die Daten.
ReadCommitted: es werden nur Daten gesehen die Committed sind.
RepeatableRead: es werden nur Daten gesehen zum Start der Transaktion Committed sind.
....


Zitat:
IbObjects ..
Zitat:
.. überladen und etwas undurchsichtig.
Als größten Mangel sehe ich aber inzwischen die fehlende Compatibilität zu dem Standard Dataset an.
Der probitäre Ansatz verhindert den Einsatz von Drittanbieter-Componenten.
Das war u.a ein Grund für mich von IbObjects zu FibPlus umzusteigen.


alex
Alexander
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#82

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 22. Okt 2007, 14:40
Die Einstellung im Dateinamen war mir nicht mehr geläufig. Jetzt wo ich es lese, hätte ich es auch wissen können.
Bei IBO und dem Net Provider erfolgt das ja über den Connect-String.
Also danke für den Tip.
Bei mir scheint der Zugriff über TCP/IP nicht zu funktionieren.
Das kann aber daran liegen, dass ich aus einer VM über das virtuelle Netzwerk auf den Server(Host PC) zugreifen will.
Ich ersetze IBO in einem vorhandenen Projekt. Da war das Einlesen von Readonly Daten nicht in Transactionen gekapselt.
Mit Gewöhnungsbedürftig meine ich übrigens nicht unbedingt schlechter.
Bisher habe ich halt eine Query nicht mit ExecQuery geöffnet.

Die Abfragezeiten bestimme ich in einem Projekt. Hier generiert ein Druckgenerator für Fastreport 4 die Druckdaten und
benötigt im konkreten Fall pro Druckzeile 3 bis 4 SQL Abfragen.
IBObjects schwankt im Bereich 2 - 3 ms pro Abfrage und Fibplus im Bereich 3 - 4 ms.
Ist aber von zweitrangiger Bedeutung.

Mit Gruß
Peter
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#83

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 22. Okt 2007, 14:53
Lese gerade, Du benutzt FIBQuery ? Warum das ? IMHO ist das eigentlich überflüssig und nur aus irgendwelchen Kompatibilitätsgründen überhupt miit dabei. Würde mich nicht wundern wenn es wegen überflüsigem Code etwas langsamer ist, als FIBDataSet. Zum Rest : kann das auch nicht nachvollziehen. Unter dem Aspekt, dass sogar IBExpert mit FIBPlus programmiert ist : Bug eher unwahrscheinlich. Falls doch Bug würde ich den mal melden !
Gruß
Hansa
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#84

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 22. Okt 2007, 15:34
Zitat von Hansa:
Lese gerade, Du benutzt FIBQuery ? Warum das ? IMHO ist das eigentlich überflüssig und nur aus irgendwelchen Kompatibilitätsgründen überhupt miit dabei. Würde mich nicht wundern wenn es wegen überflüsigem Code etwas langsamer ist, als FIBDataSet. Zum Rest : kann das auch nicht nachvollziehen. Unter dem Aspekt, dass sogar IBExpert mit FIBPlus programmiert ist : Bug eher unwahrscheinlich. Falls doch Bug würde ich den mal melden !
Doch der Effekt ist reproduzierbar.
An der Stelle jedoch nicht so wichtig könnte sich an anderer Stelle aber auswirken.
Im Modul TpFIBDatabase.GetTableNames(...

Delphi-Quellcode:
if not WithSystem then
    Params[0].asString:='and RDB$SYSTEM_FLAG = 0'
Beim erneuten Verwenden der Query wird Params[0] nicht gelöscht.
Nach Aufruf mit WithSystem = false ist die Einstellung nicht mehr rücksetzbar.

Hier reicht ein else Zweig.

Delphi-Quellcode:
if not WithSystem then
    Params[0].asString:='and RDB$SYSTEM_FLAG = 0'
else Params[0].asString:='';
da die Query hier mit
qry := GetQueryForUse(vInternalTransaction,TablesSQL); global bereitgestellt wird, weis ich noch nicht, wo sich der Effekt noch auswirken kann.

Query und/oder Dataset ist sicherlich eine interessante Diskussion.
Ich verwende die Query nur dort, wo ich eine einzelne SQL Anweisung oder einen einfachen Cursor benötige.
Da in der Query einiges an Overhead fehlt, meine ich das die Abarbeitung schneller ist.
FIBPLUS geht übrigens intern den gleichen Weg.


Gruß
Peter
  Mit Zitat antworten Zitat
Boro

Registriert seit: 2. Mai 2006
23 Beiträge
 
#85

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 29. Okt 2007, 12:46
Hallo,

hat jemand Erfahrung wie geht FIBPlus mit Turbo Delphi Pro ?

Mit der Instalation der 6.7 Trial Version hatte ich Schwierigkeiten. Mit der 6.8 war Installation schon Problemlos.
Viele der example Projekte haben aber Probleme, wie z.B.
Zitat:
[Pascal Fatal Error] Unit1.pas(39): F1026 File not found: 'pFIBDataSetOptions.dcu'
. Diese Datei (und uberhaupt keine pFIBDataSetOptions.*) gibt es nicht in der trial Version sowohl und auch an der ganzen Festplatte nicht. Auf der Support Ticket bieten dazu keine Lösung, aber bestädigen mir die Idee das es die Fehler mit der Vollversion (mit Source Datein) nicht gäbe und das mit der Turbo Version gab es immer Probleme mit der Verwendung der precompiled .dcu files.

Kann jemand bestätigen gute Erfahrung mit FIBPlus und Turbo Pro ?

Boro
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#86

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 29. Okt 2007, 12:55
Aber wenn eine benötigte dcu nicht vorhanden ist kann es eigentlich nicht an der verwendeten IDE liegen.
Markus Kinzler
  Mit Zitat antworten Zitat
Boro

Registriert seit: 2. Mai 2006
23 Beiträge
 
#87

Re: CRLab oder FIBPlus als BDE-Ersatz

  Alt 29. Okt 2007, 13:45
mkinzler, die Unabwesenheit der Datei vieleicht hangt nicht von der IDE ab. Aber vieleicht ist die Instalation IDE abhängig.

Es gibt aber auch andere Fehler wie z.b. bei der individuellen Offnung eines example Projektes (Events)
Zitat:
Error reading dt.ReceiveEvents.Strings: Property ReceiveEvents does not exist.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf