FATS - Fast Access Tree System
Inhaltsverzeichnis
Programmierschnittstellen
Visual Basic für Windows 95/NT

Visual Basic für Windows 95/NT


 
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 Long

Private 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:

szCmndBefehlsstring
nErrorcodeFehlercode von FATS
nKeylenLänge des Rückgabeschlüssels
0Kennung 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.makTestprogramm 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.frmMatchcode-Suche im Kundenstamm
 mcsort.frmAnwendung 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:

1.) Threadspezifische Verarbeitung

Wenn Sie automatisch für jeden Thread eine eigene FATS-Umgebung verwenden wollen, dann können Sie die Funktionen dll_FATSCall & dll_FATSGetKey mit der Kennung 16 aufrufen:

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.

2.) Mehrere FATS-Umgebungen

Durch die Verwendung der Funktionen dll_FATSInit und dll_FATSExit können Sie den Threads eine oder mehrere FATS-Umgebung(en) zuweisen. Leider ist es in der Test- und Entwicklungsumgebung von Visual-Basic nicht immer möglich, den Abbruch eines Programmes abzufangen, um die von FATS benutzten Ressourcen an das Betriebssystem zurückzugeben bzw. noch geöffnete FATS-Dateien zu schließen.

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