Borland Database Engine
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.
Konfiguration der BDE
Die folgenden Einstellungen optimieren die Borland Database Engine. Einige Einstellungen sind für den Netzwerkbetrieb zwingend notwendig.
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.
In der folgenden Tabelle werden die benötigten Einstellungen im Zweig "Treiber" → "Native" → "Paradox" aufgelistet:
Parameter | Standardeinstellungen | Einstellungen < 2 GB RAM | Einstellungen > 2 GB RAM |
---|---|---|---|
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 | Einstellungen < 2 GB RAM | Einstellungen > 2 GB RAM |
---|---|---|---|
Langdriver | Pdox ANSI Intl | Pdox ANSI Intl | Pdox ANSI Intl |
LOCAL SHARE | FALSE* | TRUE | TRUE |
MAXBUFSIZE | 2048 | 32767 | 65535 |
MAXFILEHANDLES | 48 | 396 | 4096** |
MEMSIZE | 16 | 205*** | 205*** |
MINBUFSIZE | 128 | 16384 | 65535 |
SHAREDMEMLOCATION | <leer> | 0x5BDE | 0x7F000000 |
SHAREDMEMSIZE | 2048 | 8192 | 32768 |
* "FALSE" ist nicht für Netzwerkanwendungen geeignet.
** Bei Problemen ersatzweise 2048
*** Bei Problemen ersatzweise 16
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Leere Tabellen
Leere Tabellen können tatsächlich leer sein oder die Tabelle wird im entsprechenden Modul nicht angezeigt.
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).
Die Speicheroptionen von Datenträgern (Abschalten des Laufwerkscache 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.
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.