Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#11

AW: Auslesen von mehreren BDE / Paradox DBs

  Alt 6. Aug 2021, 22:13
Siehe u. a. hier: https://groups.google.com/g/de.comp..../c/r6EW2RiBGpo
oder hier: https://www.ergofakt.de/kb/363.aspx
Oder auch hier: https://support.qne.com.my/support/s...ne-error-2501-
Oder hier: http://wiki.faktulux.de/index.php/Bo...atabase_Engine (Das soll auch noch unter Windows 8.1 64 Bit funktionieren.)

Ansonsten Suchmaschinen anwerfen mit Borland Database Engine runtime fehler.
Auch wenn die BDE schon gefühlte Jahrzehnte abgekündigt ist, man findet den Fehler auch noch in Texten vom August 2021. Totgesagte leben halt länger

Habe kein aktuelles Delphi, keine aktuelle BDE ...

Aber:

Den Fehler kenne ich.

In der IDE / Objektinspektor keine der Datenbankkomponenten auf Active (o. ä.) := true setzen.

Schön alles zulassen, auch wenn man in der Entwickungsumgebung gerne die Daten sehen möchte.

Vorm Kompilieren halt wieder alles schließen.

Bei der BDE gilt grundsätzlich: Datenbankverbindung, Abfragen und / oder Tabellen erst zur Laufzeit öffnen.
(Ansonsten könnten sich die Datenbankzugriffe in der IDE und die des Programmes in die Quere kommen).

Das gilt grundsätzlich auch für mehrere Prozesse auf einem Rechner, die zeitgleich die BDE nutzen. Es muss dabei nicht zwingend die Nutzung der gleichen Datenbank(datei) sein.

Durch Änderungen an der Konfiguration der BDE (über die BDE-Verwaltung in der Systemsteuerung) konnte man seinerzeit zwar einige Probleme beheben, aber da weiß ich nicht mehr so recht, was man da genau wo ändern musste, wenn Problem X oder Problem Y ... auftraten.

Im Screenshot (wer schießt den hier auf den Bildschirm ) ist die Einstellung der BDE von meinem ollen Windows-XP. Das reicht für die seeeeeehr sporadische Nutzung von DBase bzw. Paradoxdateien (so ca. alle 2 Jahre mal )

Keine Ahnung, ob bei der heutigen BDE noch die entsprechende Hilfedatei dabei ist und man die sich unter aktuellen Windosen auch noch anschauen kann. Daher hier einfach mal der Teil, der bei der Problemlösung am ehesten helfen könnte:
Zitat von Hilfe zur BDE-Verwaltung / System/INIT-Einstellungen:
Die System-INIT-Einstellungen sind diejenigen Einstellungen, die BDE zum Start einer Anwendung verwendet. Diese Informationen werden in der Windows-Registrierdatei abgelegt.
Sie zeigen diese Einstellungen folgendermaßen an:

1. Klicken Sie das Register Konfiguration im linken Bereich des Fensters der BDE-Verwaltung an und öffnen Sie den Zweig Konfiguration.
2. Öffnen Sie den Zweig System.
3. Öffnen Sie den Zweig INIT.
Die Einstellungen werden auf der Seite Definition im rechten Bereich angezeigt.

In der folgenden Tabelle listet Parameter sämtliche konfigurierbaren System- und Netzwerk-Parameter mit deren aktuellen Werten auf. Wenn Sie Ihre BDE-Anwendung zum ersten Mal installieren, werden für alle Parameter Standardwerte eingesetzt.

Beschreibung gibt einen Hinweis auf den Einsatzzweck des gewählten Parameters.

Zum Ändern einer Einstellung markieren Sie den gewünschten Parameter, und ersetzen Sie den alten mit dem neuen Wert. Wenn Sie die Bearbeitung abgeschlossen haben, wählen Sie Objekt|Übernehmen oder klicken Übernehmen an, um die Änderungen zu speichern.

Parameter Beschreibung

AUTO ODBC Setzen Sie diesen Parameter auf TRUE, um bei jeder Initialisierung der BDE installierte ODBC-Treiber und Datenquellen zu importieren.
Vorgabewert: FALSE. Hinweis: AUTO ODBC muß aufgrund der Einstellung des Konfigurationmodus auf Virtual nicht mehr auf TRUE gesetzt werden. Weitere Informationen finden Sie unter Dialogfeld Optionen.
DATA REPOSITORY Der Name des aktiven Data Dictionary.
DEFAULT DRIVER Der Treiber, der zuerst geladen wird, wenn TYPE auf FILE gesetzt wurde und der Tabellenname keine Erweiterung besitzt. Gibt für Dateien mit der Erweiterung .DBF auch an, ob der dBASE oder FoxPro-Treiber verwendet wird.

LANGDRIVER Enthält die Bezeichnung des Systemsprachtreibers. Standard ist der jeweilige länderspezifische OEM-Treiber in Abhängigkeit von der länderspezifischen Windows-Version, z.B. 'ascii' ANSI (DBWINUS0) für USA.
LOCAL SHARE Legt fest, wie eine Dateisperrung zwischen einer aktiven BDE-Anwendung und einer aktiven Nicht-BDE-Anwendung durchzuführen ist. Möchten Sie mit einer BDE- und einer Nicht-BDE-Anwendung dieselben Dateien gleichzeitig bearbeiten, muß die Option auf TRUE gesetzt werden. (Sie brauchen LOCAL SHARE nicht auf TRUE zu setzen, wenn beide Anwendungen nicht gleichzeitig geöffnet sein müssen.)
Vorgabewert: FALSE

LOW MEMORY

USAGE LIMIT Legt die höchste Anzahl des niedrigen Speicherbereichs (in KB) fest, der von BDE verwendet werden kann.
Vorgabewert: 32.
MAXBUFSIZE Enthält die maximale Größe des Speichers (in KB), der als Cachepuffer für die Daten einer Datenbank zugeordnet werden soll. Dieser Eintrag kann ein beliebiger ganzzahliger durch 128 teilbarer Wert zwischen MINBUFSIZE und 65.535 sein.
Vorgabewert: 2048
MAXFILEHANDLES Enthält die maximale Anzahl der Datei-Handles, die BDE verwenden darf. Der Eintrag kann ein ganzzahliger Wert zwischen 5 und 4096 sein. Bei höheren Werten erhöht sich die Arbeitsgeschwindigkeit, es werden aber auch mehr Windows-Ressourcen belegt.
Vorgabewert: 48

MEMSIZE Legt die maximale Größe des Arbeitsspeichers (in MB) fest, der von BDE verwendet werden kann.
Vorgabewert: 16 MB. Maximum: 205 MB. Bei Angabe einer höheren Zahl als 205 wird MEMSIZE auf 205 gesetzt.
MINBUFSIZE Enthält die minimale Größe des Speichers (in KB), der als Cachepuffer für die Daten einer Datenbank reserviert werden soll. Dieser Eintrag kann ein beliebiger ganzzahliger Wert zwischen 32 und 65535 sein, muß aber kleiner sein als die Größe des für Windows verfügbaren RAM.
Vorgabewert: 128

SHAREDMEMLOCATION Die bevorzugte Adresse für den 'Shared Memory Manager'. Der 'Shared Memory Manager' und der 'Shared Buffer Manager' werden an diese Adresse geladen. Ist diese Adresse bereits belegt, kann das System selbst eine passende Adresse finden (nur beim ersten Vorgang). Falls die Adresse mit anderen Anwendungen in Konflikt steht, sollten Sie sie ändern. Wenn der Manager nicht in die Vorgabe- oder angebene Adresse geladen werden kann, wird dem Betriebssystem ein Versuch erlaubt, eine Speicheradresse zu finden. Wird eine Adresse au0erhalb des Bereichs (siehe unten) angegeben, wird die Voragbe-Adresse verwendet.

Vorgabewert (für Windows 95) 0xEBDE0000
Kleinster Wert (für Windows 95): 0x90000000
Größter Wert (für Windows 95): 0xFFFF0000

Vorgabewert (für Windows NT): 0x6BDE0000
Kleinster Wert (für Windows NT): 0x10000000
Größter Wert (für Windows NT): 0x7F000000

Die Bereichseinstellung für für SHAREDMEMLOCATION ist 9000 bis FFFF für Windows 95 und 1000 bis 7F00 für Windows NT. Es wird nur das höherwertige Wort (Word) für die Einstellung SHAREDMEMLOCATION verwendet.

SHAREDMEMSIZE Legt die maximale Größe des Arbeitsspeichers (in KB) fest, der von BDE für gemeinsam genutzte Ressourcen verwendet werden kann.
Vorgabewert: 2048*KB, Minimum: 2048
Wird ein Wert unter 2048 angegeben, wird 2048 verwendet. Datei-Handles, Treiber und System-, Client- sowie Tabellenobjekte sind gemeinsam genutzte Ressourcen und SHAREDMEMSIZE sollte erhöht werden, wenn viele dieser Objekte verwendet werden.
SQLQRYMODE Legt die Methode fest, wie SQL-Abfragen durchgeführt werden sollen. Diese Einstellung kann die Werte NULL (leer), SERVER oder LOCAL annehmen. Der SQLQRYMODE-Parameter wird nur angezeigt, wenn ein Borland-SQL-Link-Treiber installiert ist.
Vorgabewert: NULL

SYSFLAGS Diese interne BDE-Einstellung darf nicht geändert werden.
VERSION Weist auf die derzeit verwendete BDE-Version hin. Hierbei handelt es sich um eine interne Einstellung, die nicht verändert werden darf.
Achso: Bevor Du jetzt hiermit experimentierst, schau bitte bei Deiner BDE nach, ob's da nicht doch was aktuelleres an Hilfe gibt. Immerhin ist dieser Text jetzt schon 20 Jahre alt (Dateidatum 10.05.2001).

Seinerzeit musste in unterschiedlichster Kombination mit den Werten für MAXBUFSIZE, MAXBUFSIZE, MEMSIZE, SHAREDMEMSIZE rumprobiert werden. Da musste man halt ausprobieren, welche Kombination für welches System die robusteste Konfiguration ergab.

Damals war es so: Damit Änderungen an der Konfiguration wirksam wurden, mussten alle Programme, die auf die BDE zugegriffen hatten, beendet werden. Erst dann wurden alle DLL's aus dem Speicher geworfen und beim ersten erneuten Start eines die BDE nutzenden Programmes, wurden die Konfigurationsänderungen genutzt. Keine Ahnung, ob das heute auch noch so ist.

Ansonsten: Der Hersteller hat auch noch was zu sagen: http://docwiki.embarcadero.com/RADStudio/Sydney/en/BDE
Miniaturansicht angehängter Grafiken
bde_system_init.jpg  

Geändert von Delphi.Narium ( 7. Aug 2021 um 08:10 Uhr) Grund: Schreibfehler ...
  Mit Zitat antworten Zitat