Borland Database Engine

Aus FAKTURA-X Wiki
Zur Navigation springen Zur Suche springen

Die Borland Database Engine (BDE) stellt als Middleware die notwendigen Dienste zum Nutzen der Datenbanktabellen zur Verfügung. Die BDE wird in der Regel gemeinsam mit der Anwendung installiert, kann jedoch auch manuell auf dem Zielsystem installiert werden. Um FAKTURA-X nutzen zu können, muss eine BDE installiert sein.

Die BDE kann hier heruntergeladen werden

Konfiguration der BDE

Die folgenden Einstellungen optimieren die Borland Database Engine. Einige Einstellungen sind für den Netzwerkbetrieb zwingend notwendig. Die Einstellungen müssen auf jedem Computer nach der Anwendungsinstallation und vor dem ersten Programmstart durchgeführt werden!

Die Anwendung für die Konfiguration der BDE befindet sich unter C:\Program Files\Common Files\Borland Shared\BDE\bdeadmin.exe (Windows 8) bzw. C:\Program Files (x86)\Borland\Common Files\BDE\bdeadmin.exe (Windows 7) und muss mit Administratorrechten gestartet werden. Unter dem Register Konfiguration finden sich Zweige mit einstellbaren Werten.

 
Konfiguration der BDE

In der folgenden Tabelle werden die benötigten Einstellungen im Zweig "Treiber" → "Native" → "Paradox" aufgelistet:

Parameter Standardeinstellungen Mittlere Einstellungen Maximale Einstellungen
Langdriver asci Pdox ANSI Intl Pdox ANSI Intl
BlockSize 2048 32767 32767
Level 7 7 7

In der folgenden Tabelle werden die benötigten Einstellungen im Zweig "System" → "INIT" aufgelistet:

Parameter Standardeinstellungen Mittlere Einstellungen Maximale Einstellungen
Langdriver Pdox ANSI Intl Pdox ANSI Intl Pdox ANSI Intl
LOCAL SHARE FALSE* TRUE TRUE
MAXBUFSIZE 2048 32767 65535
MAXFILEHANDLES 48 396 2048
MINBUFSIZE 128 16384 65535
SHAREDMEMLOCATION <leer> 0x5BDE 0x7F000000
SHAREDMEMSIZE 2048 8192 32768

* "FALSE" ist nicht für Netzwerkanwendungen geeignet.

Bei modernen Systemen kann problemlos die maximale Einstellung verwendet werden. Sollte es zu Problemen kommen, wechseln Sie auf die mittleren Einstellungen. Die Standardeinstellungen sind in der Regel nicht ausreichend für moderne Anwendungen und deren Speicherbedarf.

Änderungen der Einstellungen werden gespeichert, wenn das Konfigurationsprogramm beendet wird. Nach der letzten Eingabe sollte jedoch das Tabellenfeld noch einmal gewechselt werden, damit das System die Änderung als solche erkennt.

Datenbankstörungen

Fehlermeldungen im Datenbanksystem können ein Hinweis auf ein kurzzeitiges Problem oder technische Störungen sein. Ihnen sollte immer Beachtung geschenkt werden. Sofern Meldungen gehäuft auftreten und Störungen immer wieder Reparaturen erfordern, kann ein funktionaler Fehler in der Anwendung, eine grobe Fehlbedienung oder ein Fehler im verwendeten Computer oder im Netzwerk vorliegen.

Allgemeines

Eine Fehlermeldung gibt unter Umständen Hinweise auf die Ursache eines Problems und hilft bei der dauerhaften Beseitigung. Die Fehlermeldung ist allerdings nutzlos, wenn sie geschlossen wird ohne gelesen worden zu sein oder der Inhalt der Meldung später nicht mehr bekannt ist und an den Kundendienst weitergegeben wird. Daher sollte eine Fehlermeldung immer gelesen und durch <Strg+C> in die Zwischenablage kopiert werden. Diese Zwischenablage kann dann in jeden Editor (einfaches Textprogramm, Word, E-Mailprogramm usw.) eingefügt werden. Im Zweifelsfall kann der Windows- Editor „notepad.exe“ gestartet und genutzt werden, um die Fehlermeldung mit <Strg+V> einzufügen.

Die meisten Fehlermeldungen enthalten einen Hinweis auf die Herkunft des vorliegenden Problems. Dies kann der Name des Feldes (beispielsweise „Name“ oder „Brutto“) oder der Name der Tabelle (beispielsweise „Kunden.db“ oder „Rechnung.db“) oder eines Speicherorts (beispielsweise „Data“) sein.

Hinweise auf die Tabelle können genutzt werden, um bei schwerwiegenden Problemen die defekte Tabelle einzeln zu behandeln oder aus einer Sicherung einzuspielen und so den Datenverlust oder den Aufwand für eine Reparatur zu verringern. Sofern eine Tabelle statische Informationen enthält (beispielsweise die Bankleitzahlentabelle „BLZ.db“), kann eine Wiederherstellung problemlos aus einer Datensicherung erfolgen. Tabellen mit Bewegungsdaten sind im Gegensatz dazu mehrfach miteinander verknüpft und können nicht isoliert betrachtet werden. Fehlermeldungen, die eine Tabelle benennen, können jedoch keine Auskunft über Folgefehler in anderen Tabellen geben.

Fehlermeldungen

Im Folgenden werden die Fehlermeldungen, ihre Bedeutung und Lösungsansätze erklärt.

Speicherfehler

  • Insufficient memory disk space
  • Nicht ausreichender Laufwerksspeicher
Dieser Fehler kann mit einem Update beseitigt werden.

Ursache ist, dass der freie Speicherplatz auf einem lokalen Datenträger in GB durch vier ohne Rest teilbar ist (beispielsweise 40 GB, nicht jedoch 41 GB)

Der Fehler tritt dann auf, wenn FAKTURA-X eine bestimmte Programmbibliothek des Datenbanktreibers nicht laden kann, weil dieser in einem anderen Installationsverzeichnis abgelegt wurde oder das Betriebssystem den Zugriff auf den Installationsordner verweigert. In diesem Fall wird ersatzweise eine fehlerhafte Berechnungsmethode des verfügbaren Speicherplatz von Windows verwendet. Diese Methode gibt für alle Werte, die ohne Rest durch 4 teilbar sind, null aus.

Zur Behebung kann eine Datenträgerbereinigung durchgeführt werden, um Speicherplatz auf dem Datenträger freizugeben und den Wert des freien Speichers auf einen nicht durch vier teilbaren Wert zu ändern. Es können auch 150MB an Daten auf den betroffenen Datenträger kopiert werden, um den Wert des freien Speichers zu ändern.

Index oder Validierung ungültig

  • Index nicht mehr gültig
  • VAL nicht mehr gültig
  • Index out of Date
  • VAL out of Date

Dieser Fehler ist eine seltene Störung. Er tritt auf, wenn die Bestandteile einer Tabelle nicht das gleiche Datum haben, beispielsweise weil gleichnamige Tabellen mehrfach im Datenbankverzeichnis vorliegen. In der Regel ist zuvor eine Kopieraktion fehlgeschlagen oder ungültig gewesen.

Zur Behebung dieser Probleme muss die Datenbank neu indiziert werden. Dies erledigt die „Datenbankreparatur“ in der Regel problemlos.

Indexfehler

  • Indexfehler
  • Index Error

Dieser Fehler ist die häufigste Störung. Die Ursache liegt an einer technischen Schwäche im Paradox- Datenbanksystem. Bei der Neuanlage eines Datensatzes bekommt dieser eine eindeutige Kennung zugewiesen, die inkrementell vergeben wird. Dabei kann es aus verschiedenen Gründen dazu kommen, dass ein solcher Index doppelt vergeben wird. Die Anzahl der Indizes ist dann kleiner als die Anzahl der Datensätze. Bei der Direktbearbeitung von Datentabellen kann ein doppelt vergebener Index ebenfalls zu diesem Fehler führen.

Zur Behebung dieser Probleme muss die Datenbank neu indiziert werden. Dies erledigt die „Datenbankreparatur“ in der Regel problemlos.

Schlüsselkonflikt

  • Keyviolation/Key Violation

Dieser Fehler gehört ebenfalls zu den die häufigsten Störungen. Die Ursache sind in der Regel Probleme beim Sichern der Daten, meist liegt ein Problem des Betriebssystems vor.

Zur Behebung dieser Probleme muss die Datenbank neu indiziert werden. Dies erledigt die „Datenbankreparatur“ in der Regel problemlos. Sollte der Fehler häufiger auftreten, sollte das Computersystem geprüft werden.

Datei ist beschädigt, der Vorspann jedoch nicht

  • Header corrupted

Ein defekter Tabellenkopf kann ein schwerwiegenderes Problem in der Datenbank darstellen. Er kann bedeuten, dass die Tabelle irreparabel beschädigt ist. Die Ursache kann an fehlerhaften Dateisystemen oder Betriebssystemen liegen. Eine andere Fehlerquelle ist das Fehlschlagen einer vorigen Datenbankreparatur. Bei einer beschädigten Tabelle sind die Nutzdaten in der Regel noch vorhanden, Indizes und Strukturinformationen jedoch verlorengegangen. Teilweise verbergen sich hinter der Fehlermeldung auch Indexfehler.

Zur Behebung kann die „Datenbankreparatur“ probeweise durchgeführt werden. Sollte das Problem fortbestehen, ist jedoch eine manuelle Prüfung notwendig. Auch die Rücksicherung aus einer Datensicherung sollte in Betracht gezogen werden.

Tabelle ist gesperrt

  • Tabelle ist in Benutzung
  • Table is busy
  • Record locked by another User

Diese Meldung weist nicht auf einen Datenbankdefekt, sondern auf einen Zugriffsfehler hin, der aus Sicherheitsgründen abgelehnt wurde. Die Ursache ist, dass der Datensatz oder die gesamte Tabelle von einem anderen Anwender exklusiv benutzt wird und daher für andere Nutzer gesperrt ist. Das Problem tritt nur in Netzwerken auf. Sofern kein Nutzer auf die Tabelle zugreift (Anwendung ist an allen anderen Arbeitsplätzen geschlossen) und das Problem weiter besteht, ist die Tabelle nach einer vorigen Nutzung nicht ordnungsgemäß freigegeben worden.

Zur Behebung können alle Arbeitsstationen geschlossen werden und dann im Datenbankverzeichnis nach Dateien mit der Endung „*.lck“ gesucht werden. Diese können gelöscht werden. Danach sollte das System wieder normal arbeiten.

Operation bei geschlossener Datenmenge nicht ausführbar

Diese Meldung weist darauf hin, dass die Bearbeitung eines Datensatzes nicht gespeichert werden kann, weil sich die Tabelle im Nur- Lese- Modus befindet. Das Problem tritt auf, wenn ein anderer Anwender Daten geschrieben hat und die Tabelle in den Lesemodus versetzt hat, während an einer anderen Station ebenfalls Daten bearbeitet und dann gespeichert werden sollten. Der Fehler ist in der Regel funktional bedingt, er kann jedoch auch ein Symptom für eine andere Datenbankstörung sein.

Zur Behebung kann die Funktion erneut ausgeführt werden, gegebenenfalls das Modul oder die gesamte Anwendung beendet und neu geöffnet werden. Sollten weitere Fehlermeldungen mit Hinweisen auf Defekten auftreten, liegt eine Datenbankstörung vor.

Feld nicht gefunden

Diese Meldung weist darauf hin, dass ein Feld in der Datenbank nicht gefunden wurde. Das Feld ist entweder falsch zugeordnet, was auf einen funktionalen Fehler hindeutet, oder die Datenbank ist nach einem Update nicht auf dem neuesten Stand. Der Fehler kann jedoch auch ein Symptom für eine andere Datenbankstörung sein.

Zur Behebung kann das Modul oder die gesamte Anwendung beendet und neu geöffnet werden. Gegebenenfalls sollte eine Datenbankaktualisierung ausgeführt werden. Sollten weitere Fehlermeldungen mit Hinweisen auf Defekten auftreten, liegt eine Datenbankstörung vor.

Ungültiger Wert

Diese Meldung weist darauf hin, dass in einem Feld der Datenbank ungültige Inhalte geschrieben werden sollen oder enthalten sind. Ein typisches Beispiel ist die Berechnung von Werten, die aus ganzzahligen Feldern entnommen werden. Wenn eines der Felder keinen Inhalt hat, wird die Meldung „’’ ist kein gültiger Integerwert“ ausgegeben. Die Meldung ist etwas missverständlich, weil mit ’’ ein leeres Feld gemeint ist. tatsächlich unterscheidet die Anwendung zwischen <Leer> und „0“.

Datentyp Gültige Werte Ungültige Werte
Ganzzahlen positive und negative ganze Zahlen <leer>, Text, Kommazahlen
Kommazahlen positive und negative ganze oder gebrochene Zahlen <leer>, Text,
Logische Werte "Wahr" (= True) und "Falsch" (= False) <leer>, Zahlen > 1, Texte
Zeichenketten Alle Zeichen -

Gegebenenfalls deutet die Meldung auch auf einen funktionalen Fehler hin.

Zur Behebung kann eine Initialisierung durchgeführt werden, bei der leere Werte durch Basiswerte ersetzt werden und ungültige Feldinhalte damit vermieden werden. Bei einzelnen, leeren Feldern können diese mit gültigen Werten gefüllt werden.

Tabelle nicht gefunden

Diese Meldung weist auf eine fehlende Tabelle hin und tritt sehr selten auf, denn fehlende Tabellen werden beim Start der Anwendung automatisch erstellt. Der Speicherort der Tabelle ist entweder falsch zugeordnet, was auf einen funktionalen Fehler hindeutet, oder der Fehler ist ein Symptom für eine andere Datenbankstörung.

Zur Behebung kann das Modul oder die gesamte Anwendung beendet und neu geöffnet werden. Sollten weitere Fehlermeldungen mit Hinweisen auf Defekten auftreten, liegt eine Datenbankstörung vor.

Fehler beim Initialisieren der Borland Database Engine

Diese Meldung erscheint beim Start der Anwendung, danach treten während der Laufzeit massive Probleme auf oder die Anwendung wird nicht weiter gestartet.

Der Fehler deutet auf eine Störung des Datenbanktreibers hin.

Zur Behebung kann die Anwendung beendet und neu geöffnet werden. Gegebenenfalls muss das gesamte Computersystem neu gestartet werden. Sollte die Fehlermeldung weiterhin erscheinen, muss der Datenbanktreiber gegebenenfalls neu installiert werden.

Leere Tabellen

Leere Tabellen können tatsächlich leer sein oder die Tabelle wird im entsprechenden Modul nicht angezeigt.

Sofern eine Fehlermeldung beim Starten eines Moduls erscheint und das Modul danach keine Daten enthält, wurde die Tabelle nicht geöffnet. Die Tabelle und die Daten sind jedoch vorhanden. Die zugrundeliegende Fehlermeldung lässt auf die Ursache schließen. Sofern eine Tabelle tatsächlich leer ist und zuvor eine Datenbankreparatur durchgeführt wurde, ist diese Reparatur fehlgeschlagen und es wurde eine neue Tabelle erzeugt. Maßgeblich ist dabei der Verlauf der Datenbankreparatur. Vermutlich wird die Tabelle nicht mehr repariert werden können, sondern muss aus einer Sicherung eingespielt werden.

Systembedingte Störungen

Häufig sind vermehrte Störungen auf Probleme mit dem Computersystem oder dem Netzwerk zurückzuführen. Teilweise liegen Leistungsprobleme vor (langsames Netzwerk), teilweise falsche Einstellungen (Zwischenspeicherung von Daten auf dem Arbeitsplatz und dadurch verzögerte Übertragung zum Server) oder Defekte (Arbeitsspeicher oder Festplatten) oder Inkompatibilitäten (falsche oder unterschiedliche Datenbanktreiberversionen oder Eingriff durch Fremdprogramme wie Virenscanner).

Zur Behebung müssen die Netzwerkeinstellungen (insbesondere die Leistung von Netzwerkadaptern und Switch) überprüft werden.

Die Speicheroptionen von Datenträgern (Deaktivieren des Cache im Gerätemanager) müssen angepasst werden. Die korrekte Funktion von Datenspeichern (Festplattenprüfung) und Arbeitsspeicher (probeweise Tauschen) muss geprüft werden. Die Version und die Einstellungen des Datenbanktreibers müssen (mittels der Datenbankadministration „BDEAdmin.exe“) überprüft werden.

Gegebenenfalls sollte der Virenscanner testweise deaktiviert werden oder die Anwendung als Ausnahme vom Schutz ausgeschlossen werden.

Darüber hinaus ist das Verhalten des Anwenders oftmals problematisch. Dazu gehört insbesondere das Ausschalten des Computers, insbesondere der automatische Standby von Computern mit Verlust der Datenbankverbindung im Netzwerk, das Herunterfahren bei geöffneter Anwendung oder das Ausschalten des Computers ohne Herunterfahren. Auch das wilde Klicken zur Beschleunigung von Funktionen oder das Beenden der Anwendung mittels Taskmanager aufgrund von langen Wartezeiten ist eher kontraproduktiv.

Der Standby von Clientcomputern sollte deaktiviert werden (Ausnahme: Der Monitor kann nach einer Wartezeit ausgeschaltet werden).

Die automatische Installation von Windows- oder anderen Updates mit anschließendem Neustart sollte unterbunden oder zumindest nicht in die Mittagszeit gelegt werden. Die Anwendung sollte generell nicht in der Taskleiste minimiert werden und beendet werden, wenn sie länger nicht genutzt werden soll. Computer sollten niemals einfach ausgeschaltet, sondern immer heruntergefahren werden.

Bei längeren Wartezeiten sollte Ruhe bewahrt werden. Bestimmte Funktionen benötigen viel Rechenzeit. Gegebenenfalls kann eine neuer, leistungsfähiger Computer Wartezeiten verkürzen.

Weiterführende Informationen

  • Zu Programmfehlern können Sie hier einen Artikel lesen.
  • Zur Datensicherung können Sie hier einen Artikel lesen.
  • Zur Datenbankreparatur können Sie hier einen Artikel lesen.