Programmieren mit dBASE PLUS: BDE-Einstellungen optimieren
Erscheinungsbild
Die Standardeinstellungen der BDE sind für heutige Computer, die über reichlich Hauptspeicher verfügen, nicht optimal. Um die zur Verfügung stehende Leistung besser auszuschöpfen wird empfohlen, bei einigen Eigenschaften höhere Werte einzutragen.
Das folgende Programm wurde in den dBASE Newsgroups veröffentlicht. Es liest die BDE-Einstellungen aus der Windows-Registry und passt die Werte entsprechend an. (Den Programmcode als bdeConfig.prg speichern und ausführen.)
// bdeConfig.prg
// Gepostet von Jan Hölterling in den dBASE Newsgroups
#include <windef.h>
#include <winreg.h>
#define CR chr(13)+chr(10)
set procedure to :samples:registry.prg additive
reg = new registry(HKEY_LOCAL_MACHINE, ;
"SOFTWARE\Borland\Database Engine\Settings\SYSTEM\INIT" )
lsh=reg.queryValue("LOCAL SHARE")
mbs=reg.queryValue("MINBUFSIZE")
xbs=reg.queryValue("MAXBUFSIZE")
ldr=reg.queryValue("LANGDRIVER")
mfh=reg.queryValue("MAXFILEHANDLES")
mms=reg.queryValue("MEMSIZE")
mstring=""
mchgmade=false
if lsh <> "TRUE"
mstring=mstring+"LOCAL SHARE von "+lsh+" auf TRUE"+CR
reg.setvalue("LOCAL SHARE","TRUE")
mchgmade=true
endif
if val(mbs) < 2048
mstring=mstring+"MINBUFSIZE von "+mbs+" auf 2048."+CR
reg.setvalue("MINBUFSIZE","2048")
mchgmade=true
endif
if val(xbs)< 8192
mstring=mstring+"MAXBUFSIZE von "+mbs+" auf 8192."+CR
reg.setvalue("MAXBUFSIZE","8192")
mchgmade=true
endif
if LDR <> "DBWINWE0"
mstring=mstring+"LANGDRIVER von "+ldr+" auf DBWINWE0."+CR
reg.setvalue("LANGDRIVER","DBWINWE0")
mchgmade=true
endif
if val(mfh) < 2048
mstring=mstring+"MAXFILEHANDLES geändert von "+mfh+" auf 2048."+CR
reg.setvalue("MAXFILEHANDLES","2048")
mchgmade=true
endif
if val(mms) < 32
mstring=mstring+"MEMSIZE von "+mms+" auf 32."+CR
reg.setvalue("MEMSIZE","32")
mchgmade=true
endif
release reg
reg = new registry(HKEY_LOCAL_MACHINE, ;
"Software\Borland\Database Engine\Settings\DRIVERS\DBASE\INIT" )
ldr=reg.queryValue("LANGDRIVER")
if LDR <> "DBWINWE0"
mstring=mstring+"dbase LANGDRIVER from "+ldr+" to DBWINWE0."+CR
reg.setvalue("LANGDRIVER","DBWINWE0")
mchgmade=true
endif
release reg
reg= new registry(HKEY_LOCAL_MACHINE, ;
"Software\Borland\Database Engine\Settings\DRIVERS\DBASE\TABLE CREATE" )
lvl=reg.queryValue("LEVEL")
if lvl<>"7"
mstring=mstring+"LEVEL von "+lvl+" auf 7."+CR
reg.setvalue("LEVEL","7")
mchgmade=true
endif
release reg
close procedure :samples:registry.prg
if mchgmade
msgbox("Die folgenden BDE-Einstellungen wurden geändert:"+CR+mstring+;
"Das Programm muss neu gestartet werden, damit die neuen Einstellungen wirksam werden.";
,"Information",64)
// Ergänzung von Bernd Hohenester
// Neustart programmgesteuert auslösen
run(true, _app.exeName)
// Programm beenden
quit
else
msgbox("Die BDE-Einstellungen sind in Ordnung, es wurden keine Änderungen vorgenommen.";
,"Information", 64)
endif