Entwickler-Ecke
Datenbanken - Fehlermeldung Zeos und Firebird
GelleNeu - Do 12.05.05 16:18
Titel: Fehlermeldung Zeos und Firebird
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 - 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.
GelleNeu - 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 - 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!
GelleNeu - 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!