Announcement

Collapse
No announcement yet.

Grundsätzliches zu den IBX-Komponenten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grundsätzliches zu den IBX-Komponenten

    Ich habe meine Anwendungen für InterBase-Datenbanken bisher in Delphi3 geschrieben. Die Anbindung erfolgte über die BDE+SQL-Links. Nun habe ich (endlich) Delphi5 mit den IBX-Komponenten, was die ganze Sache einfacher machen sollte. OK, ich muß weniger Code schreiben, aber insgesamt scheinen die Anwendungen weniger stabil zu sein. Ich bekomme Fehlermeldungen wie z.B. "connection lost...", nachdem 3 Datensätze erfolgreich eingetragen wurden. Oder ab und zu treten Zugriffsverletzungen beim Beenden der Anwendung auf.

    Die Hilfe zu den Einzelnen IBX-Komponenten ist recht einfach gehalten, also keine echte Hilfe.

    Nun die Konkreten Fragen:
    1. Muß ich (in Verbindung mit InterBase 5.5) explizit Transaktionen verwalten (also mit Commit/Rollback)?

    2. In meiner InterBase-Datenbank werden die Primärschlüssel mit Generatoren erstellt. Die Datenbank soll in einer Multi-User-Umgebung laufen. Ich verwende ein "Browser-Fenster" zur Anzeige der Datensätze (Navigation) und ein weiteres Fenster zum Bearbeiten der Datensätze.
    Welche Komponente ist für den Datenzugriff am geeignetsten, TIBQuery oder TIBDataSet ?

    to be continued.

    P.S.: Kompliment für dieses Diskusionsforum an die "Entwickler"!

  • #2
    Hallo Wolfgang,

    die neuen <b>IBX</b>-Komponenten von Delphi 5 sind keine Nachfolger des Gespanns BDE+SQLLinks. Daher ist die Auffassung <i>"Nun habe ich (endlich) Delphi5 mit den IBX-Komponenten, was die ganze Sache einfacher machen sollte."</i> aus meiner Sicht nicht korrekt. IBX ist näher am InterBase dran (InterBase-API) und im Verhalten mit einem <i>Porsche</i> zu vergleichen: Spritziger, aber auch anspruchsvoller und vor allem nicht in allen Situationen leicht zu fahren! Während die BDE fürsorglich im Hintergrund werkelt (und manche Entwickler-Fehler automatisch korrigiert), macht IBX genau das, was man selbst programmiert hat.

    Thema <b>IBX-Transaktionen</b>: <br>
    Auch bei IBX wird eine Transaktion immer dann automatisch gestartet, wenn beim Zugriff auf den InterBase noch keine aktiv war. Allerdings hängt das Verhalten beim automatischen Beenden der aktuellen Transaktion von der Eigenschaft <b>DefaultAction</b> ab! Es ist daher aus meiner Sicht im Interesse der besseren Übersicht, explizite Transaktionen zu verwenden:

    <pre>
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    IBTransaction1.StartTransaction;
    with IBDataSet1 do
    begin
    Open;
    Insert;
    // Daten zuweisen
    Post;
    end;
    IBTransaction1.Commit;
    end;
    </pre>

    Theme <b>Welche IBX-Komponente verwenden?</b>: <br>
    Für eine neue Anwendung, bei der tatsächlich die beste Performance herausgeholt werden soll, ist wohl <b>TIBDataSet</b> am besten geeignet. Die anderen Alternativen (TIBQuery etc.) sind Kompatibilitäts-Komponenten, um die Migration einer bestehenden Anwendung auf IBX zu erleichtern. Für das <i>Browser-Fenster</i> zum Auswählen eines Datensates kann durchaus TIBQuery verwendet werden, da die Ergebnismenge dieser Abfrage nicht editiert werden muß. <br>
    Um einzelne SQL-Anweisungen abzusetzen oder einzelne Ergebniswerte zu ermitteln, ist <b>TIBSQL</b> sehr gut geeignet

    Comment

    Working...
    X