Programmieren mit dBASE PLUS: BDE-Einstellungen optimieren
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