Autor Beitrag
GelleNeu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 12.05.05 16:18 
Hallo,

ich habe mir jetzt ein kleines Datenbankprogramm gebaut.
Ich verwende die Zeos Komponenten 6.5.1. (stable)
und Firebird embedded Server 1.5

Immer wenn ich das Programm schließe bekomme ich Fehlermeldungen. Z.B. Fehler -901 oder eine
EAccessViolation in fbclient.dll mit Adressangabe.

Woran kann das liegen?
Domo Sokrat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 21

W7
VS2010 pro / #D 4.2 / Delphi 2006 pro
BeitragVerfasst: Di 17.05.05 15:42 
Hi GelleNeu,

ein paar Fragen:

1) hast Du die Applikation laufen, während die IDE offen ist?
2) Hat Deine ZConnection (noch) eine Verbindung zur Datenbank?
3) Wie sieht's aus, wenn Du die App ohne IDE startest?

Falls 2 zutrifft, ein kleiner Tip: Du solltest die Verbindung in der IDE deaktivieren und immer erst zur Laufzeit herstellen und entsprechend vor Programmende wieder abbauen. Das erspart Dir viel Ärger in Verbindung mit dem FB embedded.

_________________
Vergesst nicht: Es wird überall nur mit Wasser gekocht !!! ;-)
GelleNeu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Mi 18.05.05 11:37 
Hallo,

erstmal danke für deine Antwort. Zu den Fragen:

1) hast Du die Applikation laufen, während die IDE offen ist?

Ich starte die Applikation schon aus Delphi heraus (zum Testen). Die Try-Except Blöcke, in denen
die DB eingebunden ist funktionieren dann nicht wirklich.

2) Hat Deine ZConnection (noch) eine Verbindung zur Datenbank?

Nein, die Verbindung wird zur Laufzeit hergestellt. Das Problem war mir bereits bekannt.

3) Wie sieht's aus, wenn Du die App ohne IDE startest?

Dann funktionieren zwar die Try-Except Blöcke, aber die Fehlermeldungen erscheinen immer noch.

Gruß
GelleNeu
Domo Sokrat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 21

W7
VS2010 pro / #D 4.2 / Delphi 2006 pro
BeitragVerfasst: Do 19.05.05 08:07 
Hi GelleNeu,

kannst Du mir vielleicht mal ein Beispiel zukommen lassen oder den Quellcode hier einstellen, mit dem man den Fehler reproduzieren kann? Könntest Du evtl. auch die Rahmenbediungen spezifizieren. Wäre toll ... Danke!

_________________
Vergesst nicht: Es wird überall nur mit Wasser gekocht !!! ;-)
GelleNeu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 19.05.05 12:08 
Hallo Domosokrat,
Also ich kann mal einige Rahmenbedingungen nennen.

Das ganze Programm ist eine Kundenverwaltung. Dabei wird unterschieden zwischen
Haushalten tbl_haushalte
und Kunden tbl_personen

Jeder Haushalt hat eine gewisse Anzahl an Kunden die einem Haushalt zugeordnet werden.
also kann z.B. an einen 4 Personen Haushalt nur EIN Werbebrief verschickt werden, obwohl es in diesem Haushalt zwei unterschiedliche Kunden (Ehemann und Ehefrau) gibt.

Gut, soviel zum Hintergrund.

Jetzt habe ich ein Formular, aufgebaut aus DBEdits mit den jeweiligen Eingabefeldern für den Haushalt.
Alle Speicherfunktionen laufen über die TDatasource bzw. TZTable, TZConnection usw..
Also für einen einfachen Speichervorgang wird einfach das DBEdit geändert und
der DataSet.Post wird sowieso ausgelöst.

Nun ist mir aufgefallen, das ich während des Programmes beliebig viele Datensätze ändern kann. Aber erst beim schließen des Programmes wird offensichtlich der Transaktionsvorgang durchgeführt,so daß es da zu den Problemen kommt?

Habe auch schonmal hier irgendwo gelesen das Firebird embedded Probleme mit sog.
StoredProcs und dem schließen von Programmen hat, aber ausser einer AutoIncrement Funktion ist meine Firebird DB das einfachste vom einfachsten...

Noch eine Frage: wie kann man Zeos Exceptions direkt abfangen? über try except geht
das irgendwie nicht.

Vielen Dank schonmal. wenn Du noch mehr angaben brauchst, frag bitte.