|
Windows Bibliotheken FATS_W32.DLL bzw. FATSXW32.DLL
Im Lieferumfang der FATS-Version für Windows 95/NT befinden sich die Dynamischen Bibliotheken FATS_W32.DLL (Basisversion) bzw. FATSXW32.DLL (Erweiterte Version), die Sie in das Systemverzeichnis von Windows kopieren müssen:
COPY FATS?W32.DLL \WINDOWS\SYSTEM
Die Bibliotheken exportieren folgende Funktionen:
Private Declare Function dll_FATSInit Lib "fats_w32.dll" Alias "FATSLibInit"(ByVal nSize As Long, ByVal nAPI As Long) As LongPrivate Declare Function dll_FATSExit Lib "fats_w32.dll" Alias "FATSLibExit" (ByVal lpFatsdata As Long) As Long
Private Declare Function dll_FATSCall Lib "fats_w32.dll" Alias "FATSLibCallA" (ByVal lpCmnd As String, nErrorcode As Long, nKeylen As Long, ByVal lpFatsdata As Long) As Long
Private Declare Sub dll_FATSGetKey Lib "fats_w32.dll" Alias "FATSLibGetKeyA" (ByVal lpFatsKey As String, ByVal lpFatsdata As Long)
Die Funktionen dll_FATSInit und dll_FATSExit werden bei der Verwendung von Visual-Basic für 32-Bit Systeme nicht benötigt. Sie dienen bei anderen Sprachen der Allocierung bzw. Freigabe eines Speicherbereiches für FATS.
Wenn Sie diese Befehle aus bestimmten Gründen benötigen, z.B. bei Verwendung mehrerer FATS-Sessions innerhalb eines Prozesses, dann lesen Sie bitte den Text "Mehrere FATS-Umgebungen verwenden" am Ende dieses Abschnitts.
Aufruf von FATS
FATS-Befehle werden mit der Funktion dll_FATSCall ausgeführt:
dwRecno = dll_FATSCall(szCmnd, nErrorcode, nKeylen, 0)
Bedeutung der verwendeten Parameter:
szCmnd Befehlsstring nErrorcode Fehlercode von FATS nKeylen Länge des Rückgabeschlüssels 0 Kennung der FATS-Umgebung bzw.des Datenbereiches von FATS.Bei Angabe einer 0 wird der globale Datenbereich des Anwendungsprogrammes verwendet.
Wenn Sie auf den zurückgelieferten Schlüsselwert zugreifen wollen, dann müssen Sie den Funktionsaufruf folgendermaßen erweitern:
If nKeylen > 0 Then
szFatsKey = Space(nKeylen)
Call dll_FATSGetKey(szFatsKey, 0)
Else
szFatsKey = ""
End If
Da es für FATS keine Möglichkeit gibt, Basic-Strings direkt zu manipulieren, müssen Sie selbst dafür sorgen, daß die Stringvariable szFatsKey die benötigte Länge hat. Die Basic-Funktion Space füllt daher den String szFatsKey mit der benötigten Anzahl Leerzeichen. Der nachträgliche Aufruf von dll_FATSGetKey kopiert dann den Schlüsselwert in den Basic-String.
Testprogramme
Auf der FATS-Diskette für Windows 95/NT befinden sich im Verzeichnis WIN_32I\BASIC\VBWIN Testprogramme, anhand derer Sie die Verwendung von FATS studieren können:
tst1_ger.mak Testprogramm für MS-Visual-Basic für Win95/NT tst1_ger.frm (Form-Modul) tst1_ger.bas (Programm-Modul)
Bei der erweiterten Version von FATS befinden sich zusätzlich die folgenden Testprogramme im Verzeichnis:
tst2_ger.frm Matchcode-Suche im Kundenstamm mcsort.frm Anwendung des Key-Flags beim Kommando 'MC'
Mehrere FATS-Umgebungen verwenden
Bei der Verwendung mehrerer Threads müssen Sie geeignete Maßnahmen treffen, damit gewährleistet ist, daß nicht mehrere Threads zur selben Zeit in die FATSUmgebung verzweigen.
Folgende Möglichkeiten stehen Ihnen dafür zur Verfügung:
dwRecno = dll_FATSCall(szCmnd, nErrorcode, nKeylen, 16)
Call dll_FATSGetKey(szFatsKey, 16)
Die FATS-Umgebungen der einzelnen Threads sind dabei vollkommen unabhängig voneinander, d.h. Thread 1 hat keinen Zugriff auf die vonThread 2 geöffneten FATS-Dateien.
Mit der Funktion dll_FATSInit erstellen Sie eine neue FATS-Umgebung:
lpFatsdata = dll_FATSInit(0, 0)
Der erste Parameter bestimmt die Größe des FATS-Datenbereichs. Wenn Sie hier eine Null angeben, dann wird der minimal benötigte Speicherplatz reserviert (ca. 18-20 KB). Der zweite Parameter bestimmt die eingesetzte Programmiersprache, für Visual Basic Programme muß dieser Wert gleich 0 sein. Die Adresse des Datenbereichs wird in der Variable lpFatsdata zurückgegeben.
Bei der Verwendung der Funktionen dll_FATSCall & dll_FATSGetKey geben Sie die über die Funktion dll_FATSInit ermittelte Adresse des FATS-Datenbereiches mit an:
dwRecno = dll_FATSCall(szCmnd, nErrorcode, nKeylen, lpFatsdata)
Call dll_FATSGetKey(szFatsKey, lpFatsdata)
Vor dem Beenden des Anwendungsprogrammes sollten Sie den mit der Funktion dll_FATSInit reservierten Speicherbereich wieder freigeben. Dafür steht die Funktion dll_FATSExit zur Verfügung:
lpFatsdata = dll_FATSExit( lpFatsdata )
© 2008 GCS Software, Udo Gertz