Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
das folgende Beispiel setzt den LEVEL-Wert der BDE für dBASE-Tabellen und ist als Hinweis für derartige Zugriffe geeignet. Über die folgenden Aufrufe kann das eigene Programm prüfen, welcher LEVEL zur Zeit gerade aktiv ist (das Beispiel verwendet eine eigene TSession-Instanz, statt dessen kann aber auch die Standard-Session »Session« verwendet werden:
<pre>uses BDE, DrvCaps;
procedure TForm1.Button1Click(Sender: TObject);
var
aSL : TStringList;
begin
aSL := TStringList.Create;
try
Session1.GetConfigParams('\DRIVERS\DBASE\TABLE CREATE', '%', aSL);
ListBox1.Items := aSL;
finally
aSL.Free;
end;
end;</pre>
Wenn dort noch die Zeile »LEVEL=5« zurückgeliefert wird, kann über den folgenden Aufruf der Level von 5 auf 7 erhöht werden:
<pre>procedure TForm1.Button2Click(Sender: TObject);
var
aSL : TStringList;
begin
aSL := TStringList.Create;
aSL.Add('LEVEL=7');
try
Session1.ModifyDriver('DBASE', aSL);
Session1.SaveConfigFile;
finally
aSL.Free;
end;
end;
</pre>
Allerdings ist diese Änderung erst beim nächsten Programmstart wirksam (die Einschränkung gilt aber auch für alle Änderungen, die man von Hand in der BDE-Verwaltung vornimmt).
Sollte es mit diesem Weg trotzdem Probleme geben, steht immer noch die Option des direkten Zugriffs auf den <b>Registry</b>-Zweig der BDE zur Verfügung:
</pre>
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\SYSTEM\INIT]<br>
"VERSION"="1.0"]<br>
"LOCAL SHARE"="FALSE" <br>
"MINBUFSIZE"="128"<br>
"MAXBUFSIZE"="2048"<br>
"LANGDRIVER"="intl"<br>
"MAXFILEHANDLES"="48"<br>
"SYSFLAGS"="0"<br>
"LOW MEMORY USAGE LIMIT"="32"<br>
"AUTO ODBC"="FALSE"<br>
"DEFAULT DRIVER"="PARADOX"<br>
"SQLQRYMODE"=""<br>
"SHAREDMEMSIZE"="4096"<br>
"SHAREDMEMLOCATION"=""<br>
"DATA REPOSITORY"="Sample Data Dictionary"<br>
"MEMSIZE"="32"<br>
"MTS POOLING"="TRUE"<br>
</pre>
Hallo Stefan,
habe ein änliches Problem: bei jeder Installation mit Install Shield erstellten Installationen wird Local Share auf false gesetzt. Aufgrund des oben genannten Hinweises versuche ich den Wert LOCAL SHARE wärend der Installation an der Stelle HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\Settings\SYSTEM\INIT auf TRUE zu setzten. Kann dies aber erst Montag auf einem Zielnetzwerkrechner ausprobieren.
Habe die Beispiele oben durchprobiert und festgestellt, das es zwar Session1.ModifyDriver gibt aber nichts vergleichbares für SYSTEM. Mann muss wohl direkt die Registrierung bearbeiten. Eine Abfrage ob local Share auf true gesetzt ist, wäre aus Sicherheitsgründen sehr sinvoll. Mit TRegistry habe ich noch nicht gearbeitet.
Im Buch Delphi 3 Datenbankentwicklung von Andreas Kosch auf Seite 144 ist ein Beispiel zur Abspeicherung der Fensterposition in der Registrierung mit privaten Pfad dargestellt.
Comment