Shareware
/ Vollversion - Index: 02.05.2002, © MRK-Soft
Easy
Datenbank ist eine DL, mit der sehr einfach eine Datenbank in das eigene
Programm eingebunden werden kann,
bei
einfacher Handhabung und größtmöglicher Sicherheit. Die gesamte Datenbank
kann durch das User / Passwort
System
komplett verschlüsselt werden, der Zugriff ist dann nur noch mit beiden oder
eines der beiden Anmelde-Systeme
möglich. Die Verschlüsselung wird dabei von der DLL
Quasi im Hintergrund erledigt, ohne, das sich der Anwender der
DLL
darum kümmern müsste. Der Sicherheitsfaktor reicht von Typ 1 (unverschlüsselt)
bis Typ3, (hoch verschlüsselt).
Darüber
hinaus sind die gesamten Funktionen der DLL extrem schnell, somit ist ein
Echtzeit Zugriff auf alle Funktionen möglich.
Ein
Zusatzmodul sogt darüber hinaus noch für die Kommunikation über ein Netzwerk
oder gar dem Internet. Computer A
greift
über ein Netzwerk (oder auch Internet) auf die Datenbank von Rechner B zu, wenn
das Programm, welches EasyDB
benutzt,
dies zuläst. Dies Netzwerkfähigkeit wird durch nur EINE Zeile Programmcode
bereits Aktiviert !!!
Möglichkeiten der Verschlüsselungstypen:
|
Username |
Kennwort |
|
Typ
1 |
- |
- |
Datenbank
Unverschlüsselt |
Typ
2 |
vorhanden |
- |
Datenbank
Verschlüsselt |
Typ
3 |
vorhanden |
vorhanden |
Datenbank
Verschlüsselt |
-
bedeutet: das ist ein Leerstring
Achtung:
Ist eines der beiden Berechtigungen
verloren gegangen, kann auf die verschlüsselte Datenbank nicht mehr
Zugegriffen
werden: Der Benutzername sowie das Kennwort werden NICHT in der Datenbank
vermerkt.
Die
Handhabung mit Easy DateBase ist dazu noch sehr einfach gehalten, mit nur
wenigen Zeilen ist eine komplette Datenbank
erstellt. Zudem ist der Zugriff auf die Datensätze
extrem schnell, dies betrifft vor allem das Suchen eines Datensatzes (ca.
50.000
Datensätze
werden in EINER Sekunde durchsucht).
Shareware-Version:
Was ist der Unterschied:
Es
können nur maximal 100 Datensätze bearbeitet / erzeugt werden, bei mehr erfolgt
ein Hinweis – Reuester und eine entsprechende
Fehlernummer
wird von der DLL zurückgegeben. Eine
Ausnahme bildet die Such und lese Funktion, wo nur der Hinweis Reuester
Erscheint.
Kategorie Anzahl
der Datensätze Preis
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Nutzung, Max. 100 Datensätze möglich, keine Registrierung erforderlich, Kostenlos
Private Nutzung, Unbegrenzte Datensätze Registrierung
Kostenlos
Kommerzielle Nutzung Unbegrenzte Datensätze Registrierung 10
Euro
*
die Private Nutzung ist NUR für den EIGENEN gebrauch zulässig. Bei einem Vertrieb des Programm als
Shareware
oder Freeware liegt eine Kommerzielle
Nutzung vor.
Grundlagen einer Datenbank:
Eine Datenbank läst sich auch als eine Tabelle ansehen, wo jedes Feld in der Tabelle einzeln angesprochen werden
kann.
Jede komplette Zeile nennt man auch REKORD oder auch Datensatz, , der Rekord kann nun in mehrere Felder
unterteilt
sein, jedes Feld nennt man Datentabelle. Ein Datensatz besteht also IMMER aus
mehreren oder mindestens einem
Datensatz-Tabellen-Feldern.
Jedes Daten-Tabellen Feld hat eine feste Länge , wobei jedes Feld eine eigene Länge haben kann,
zusätzlich
kann jedes Feld noch ein Typ bekommen. Jedes Daten-Tabellenfeld selber hat
einen Namen, den INDEX.
Beispiel
einer Einfachen Datenbank:
INDEX: |
Vorname |
Nachname |
Strasse |
Ort |
Rekord
1 |
|
|
|
|
Rekord
2 |
|
|
|
|
.... |
|
|
|
|
Diese
Datenbank hat hier 4 Index Felder, „Vorname – Nachname – Strasse
– Ort „, und besitzt 2 Einträge, Rekord 1
und
Rekord 2. Die Tabellen-Felder selber
sind leer. Was heißt das jetzt genau
???
Zu erst
wird der Rekord festgelegt, auf dem wir zugriffen wollen, also 1 oder 2, wir
können auch einen neuen 3ten
Rekord
erzeugen, aber dazu später mehr. Ist der Rekord nun festgelegt, in unserem
Beispiel wollen wir Rekord 2
nehmen,
kann nun in jeden der 4 Felder über den Index geschrieben werden.
Angegeben
wird einfach der INDEX Name, und was dort rein soll (in die Tabelle). Schreiben wir nun eine Adresse
in
den Datensatz.
edbPut („Vorname“ , “Hans“ )
edbPut („Nachname“ , „Mustermann“ )
edbPut („Strasse“ , „TestStr. 1“ )
edbPut („Ort“ , „9999 Musterhausen“ )
edbWrite(2)
So sähe dann unsere Datenbank neu aus:
INDEX: |
Vorname |
Nachname |
Strasse |
Ort |
Rekord
1 |
|
|
|
|
Rekord
2 |
Hans |
Mustermann |
TestStr.
1 |
9999
Musterhausen |
.... |
|
|
|
|
Wir
geben also den Index an, in dem wir Innerhalb des Datensatzes schreiben wollen,
Der Datensatz besteht somit
aus
einem oder mehreren Index Feldern. Wir lesen
also jeweils immer ein Datensatz ein, oder schreiben ihn in
die
Datenbank, und bearbeiten den Index des
aktuellen Datensatzes, also die einzelnen Felder.
Jedes
Datenfeld besitzt also einen Namen, eine Art Kennung, um es anzusprechen.
Die
Verschlüsselung findet übrigens im Hintergrund statt, die Zugriffsberechtigung
auf die Datenbank wird schon
beim
öffnen geprüft und bei nicht richtiger Anmeldung wird die Datenbank erst gar
nicht geöffnet.
Arbeiten
mit der Datenbank:
Das
erstellen der Datenbank erledigt CREATE
, der aus einer Struktur-Datei die Datenbank-Datei erstellt.
Die
Struktur-Datei ist eine reine Text-Datei, in der angegeben wird, wie die
Einzelnen Felder (Index) aussehen,
welche
Länge sie haben , welchen Typ und wie sie heißen. (Mehr dazu unter edbCreate).
Auch wird hier
der
Benutzername und das Kennwort für die Datenbank bestimmt, oder falls nicht
benötigt, werden hier 2
Leerstrings
übergeben.
Wem
der Umweg über eine Zusatzdatei zu umständlich ist, kann auch direkt die
Datenbank mittels CREATENULLDB
erstellen,
und die Felder mit CREATEADDFIELD der
leeren Datenbank hinzufügen. Es ist sogar möglich, in einer
leeren
Datenbank Felder wieder zu löschen !!!!!
Ist
die Datenbank vorhanden, wird sie mittels edbOpen() geöffnet, übergeben werden ihr der Benutzername und
das
Kennwort. Nach Überprüfung und
Übereinstimmung der Benutzerdaten wird die Datenbank geöffnet und gibt
die
schon vorhandenen Einträge als Ergebnis zurück,. Andernfalls, bei inkorrekter
Anmeldung (Falscher Username oder
falsches
Kennwort), wird die Datenbank nicht geöffnet, und gibt einen Fehlercode zurück.
Es
können bis zu 15 Datenbanken gleichzeitig geöffnet sein, mit unterschiedlichen
Benutzerdaten, durch Angabe von
edbUSE
wird zur aktuellen Datenbank gewechselt.
Mittels
edbRead kann nun direkt auf ein Rekord zugegriffen werden, bzw. es wird der
Inhalt des Index in den Speicher
gelesen. Mit edbGet oder edbGetIDX kann nun der
Inhalt des INDEX gelesen werden.
Geschrieben
werden die Daten in den Index-Arbeitsspeicher
mit edbPut oder edbPutIDX, der Datensatz selber wird mit
edbWrite()
in die Datenbank geschrieben.
Zum
Schluss ein edbClose() nicht vergessen, um die Datenbank zu schlissen.
EasyDB
entstand aus der Problematik heraus, das
eine Datenbank – Funktionalität in einem Programm benötigt wurde,
welches
auf Sicherheit und Schnelligkeit
aufbaute, sowie das Handling im Netzwerk-Systemen, ohne sich erst großartige
SQL oder ODBC Kenntnisse aneignen zu müssen.,
bzw. diese erst zu Installieren. Die Hauptforderung bestand jedoch in
der
Schnelligkeit der Verarbeitung der Daten sowie die Echtzeit Verschlüsselung im
Hintergrund , insbesondere sollte die
Suchfunktion
Effizient und schnell sein, direkt aus der aktuellen Datenbank erfolgen,
(Inklusive eines Filters beim Suchen),
sowie
sich durch die Verschlüsselung sich nicht negativ auf die Geschwindigkeit
auswirken. Gerade in einer
Netzwerkumgebung
ist
dies von besonderer Bedeutung, den dort läst sich sehr schlecht ein INDEX auf
irgendwelche Datensätze legen, die dann
als
Zusatzdatei erstellt werden müssten.
Darüber hinaus solle es möglich sein , einzelne Datensätze gegen Lesen
(Look) oder dem
überschreiben (WriteProtect) zu schützen.
Das
Netzwerkmodul erlaubt nun die direkte Kommunikation mit einem Easy -DB Server
über ein Lokales Netzwerk oder gar
dem
Internet. Aktiviert ein Programm den Easy - DB
Netzwerk-Server , so läuft dieser Quasi im Hintergrund und regelt
jeglichen
Zugriff auf die Datenbank..
Die Funktioen der DLL: Base100.DLL
edbCreate Neue
Datenbank erstellen über ein Struktur File
edbCreateNullDB Neue leere Datenbank
direkt erstellen, (ohne Felder)
edbCreateAddFile In eine leere
Datenbank ein neues Feld Hinzufügen
edbCreateDelFile In eine leere
Datenbank ein Feld löschen
edbOpen Datenbank Öffnen
edbClose Datenbank schlissen
edbUse Datenbank Als Aktiv
kennzeichnen
edbGetMaxRecord Gibt die Anzahl
der Einträge (Rekords) aus der aktuellen Datenbank zurück.
edbGetRecord Gibt
die aktuelle Datensatznummer ( Rekord)
aus der aktuellen Datenbank zurück.
edbGetInfo Informationen
über die Datenbank
edbbGO neuen, nächsten oder
vorherigen Datensatz (Record) lesen (in den Arbeitsspeicher),
edbReadRecord Datensatz (Rekord) lesen. (in den Arbeitsspeicher)
edbGet Datenfeld aus
Datensatz lesen, über den Index Namen.
edbGetIDX Datenfeld aus
Datensatz lesen, direkt über die Index
Nummer
edbGetIndexLen Ermittelt die
Länge des Datensatzfeldes über den Index-Namen
edbGetIndexLenIDX Ermittelt die Länge
des Datensatzfeldes über die direkte Index Nummer
edbAppend Erstellt einen neuen leeren
Datensatz im Arbeitsspeicher
edbWriteRecord Datensatz
(Rekord) in die Datenbank schreiben
(aus dem Arbeitsspeicher)
edbPut Datenfeld in
Datensatz schreiben, über den Index Namen.
edbPutIDX Datenfeld in Datensatz
schreiben, direkt über die Index Nummer
edbDelete Kennzeichnet
den aktuellen oder beliebigen Datensatz als gelöscht
edbUnDelete Kennzeichnet
den aktuellen oder beliebigen Datensatz als Nicht - gelöscht
edbLook Der
Datensatz wird gegen Lesen geschützt, (Look)
edbUnLook Der
Datensatz wird zum lesen wieder Freigegeben (Unlook)
edbWriteProtect Der Datensatz
wird gegen überschreiben geschützt (write Protect)
edbWriteProtectForm Mehrere Datensatze
auf write Protect setzen !!!
edbReadMemo Liest Daten
aus einem Memo Feld
edbWriteMemo Schreibt
Daten in ein Memo Feld
edbGetLastUpdate Der letzte Zugriff auf
die Datenbank wird zurückgegeben
edbSetLastUpdate Schreibt das Aktuelle Datum in die Datenbank
edbSearch In
der Datenbank Suchen (mit Filter !!)
edbCreate ( n1 , n2 , n3, n4 )
n1 = char; Zeiger auf einem String, Dateiname
der Quelldatei
n2
= char; Zeiger auf einem
String, Dateiname der neuen DB
n3
= char; Zeiger auf einem
String, Username für die DB
n4
= char; Zeiger auf einem
String, Passwort für die DB
Es
wird aus einer Struktur Datei eine Neue Easy-Datenbank mit einer Zugriffsberechtigung, falls ein
User und ein Kennwort übergeben
wurde,
angelegt. Sind der Username und das
Kennwort ein Leerstring, so wird die Datenbank unverschlüsselt angelegt.. Sobald
jedoch
ein Benutzername oder Benutzername und
Kennwort vergeben wird, werden alle Einträge in der Datenbank verschlüsselt.
Aufbau
der Struktur-Datei:
Feld Name;
Type; Grösse; kommata
.....
Feldname
ist ein beliebiger Name des Feldes, der Maximal 8 Zeichen besitzen darf.
Type
Kennzeichnet denTyp: C = Char
(Text), N = Nummerik (Zahlen) ; L =
Logic (0 oder 1),
D
= Datums-Feld, M = Memor-Feld,
Grösse
gibt die Grösse des Feldes selber an und Kommata gibt nur bei dem Typ N die
Kommas an.
DIESE FUNKTION IST NICHT ÜBER EIN NETZWERK ZU
BENUTZEN !!!!!!!
edbCreateNullDB
( n1 , n2 , n3)
n1
= char; Zeiger auf einem
String, Name der Datenbank, die erzeugt werden soll
n2
= char; Zeiger auf einem
String, Username für die DB
n3
= char; Zeiger auf einem
String, Passwort für die DB
Diese
Funktion erzeugt eine NEUE LEERE Datenbank.
Die Datenbank enthält noch keine Felder, diese müssen mittels „edbCreateAddFiled“
In diese
Hinzugefügt werden. N1 ist der
Dateiname der neuen Datenbank, N2 und N3 der Benutzername und das Kennwort.
edbCreateAddField
( n1 )
n1
= char; Zeiger auf einem
String, Feld-Informationen zum Hinzufügen in die Datenbank
Wichtig: Diese Funktion Funktioniert NUR, wenn die Datenbank KEINE einträge besitzt (Anzahl der Datensätze Null).
Mit Dieser Funktion kann einer leeren Datenbank ein neues Feld hinzugefügt werden, z.b nach CREATENULLDB. Sind in der Datenbank
schon
einträge vorhanden, erfolgt eine Fehlermeldung als Rückgabe, andernfalls NULL.
In
N1 wird als String der Aufbau des Feldes übergeben, das Format ist IMMER:
FELDNAME
, FELDTYP , ZEICHEN , KOMMAS
Feldname ist der
Name des Feldes, maximal 8 Zeichen
FeldTyp der
Typ, C , N , D , L , M
Zeichen gibt die Gösse
des Feldes an
Kommas die Kommata
bei einem Numerischen Feld
edbCreateDelField
( n1 )
n1
= char; Zeiger auf einem
String, Feld-Name, der gelöscht werden soll
Wichtig: Diese Funktion Funktioniert NUR, wenn die
Datenbank KEINE einträge besitzt (Anzahl der Datensätze Null).
Das
Feld mit den Namen N1 wird aus der Datenbank gelöscht und die Datenbank Reinitialisiert. Diese Funktion ist NUR möglich, solange sich
KEIN
Eintrag
in der DB befindet. In N! wird der
Name des Feldes angegeben, der gelöscht
werden soll.
edbOpen
( n1 , n2, n3, n4 )
n1
= int; File Nummer fürs
öffnen der DB
n2
= char; Zeiger auf einem
String, Dateiname der DB, bzw. mit Netzwerkadresse
n3
= char; Zeiger auf einem
String, Username für die DB
n4
= char; Zeiger auf einem
String, Passwort für die DB
Öffnet
die Datenbank N2 (Dateiname) mit der Nummer N1. Überprüft werden hier Username und Passwort,
falls
eines bei der Erstellung verwendet wurde. Sind diese nicht Identisch, kann die
Datenbank nicht geöffnet
werden. Es gellten dabei immer die folgenden
Rückmeldungs-Fehlercodes:
Rückgabe
der DLL Siehe Fehlercodes
Wurde
die Datenbank geöffnet, so ist diese auch Automatisch die AKIVE Datenbank.
Siehe Use
Achtung:
Der Username oder das Kennwort werden NICHT in der Datenbank hinterlegt. Sollte bei einer
Verschlüsselte
Datenbank eines der beiden Profile nicht mehr bekannt sein, ist die DB
verloren.
edbClose
( n1 )
n1
= int; Filenummer von der
geöffneten DB
Die
Datenbank mit der Nummer N1 wird geschlossen.
edbUse
( n1 )
n1
= int; Filenummer von der
geöffneten DB
Macht
die Datenbank mit der Nummer N1 zur aktiven Datenbank. Daher, alle Zugriffe auf
Rekords und
den
Index-Feldern beziehen sich dann auf diese Datenbank. Nach jedem edbUse zeigt der Interne Rekord
Zeiger
immer auf den Anfang der Datenbank.
edbDelete
(n1) n1
= int; Datensatz-Nummer
Kennzeichnet
den Datensatz N1 als gelöscht
edbUnDelete
(n1) n1 =
int; Datensatz-Nummer
Kennzeichnet
den Datensatz N1 als Nicht gelöscht
edbDeleteForm ( n1 , n2 ) n1 = int; beginn Start Datensatz (Reckrd)
n2 =
int; Anzahl der Datensätze
(Records)
DeleteForm kennzeichnet
einen ganzen Block an Datensätzen als gelöscht. N1 ist der Start Datensatz, ab
dem
das Kennzeichen „gelöscht“ gesetzt werden soll, N2 gibt die
Anzahl an Datensätzen ein, also den Block.
DeleteForm ( 30, 50 ) würde als von Datensatz 30 an beginnent die
nächsten 50 Datensätze als gelöscht kennzeichnen.
edbUndeleteForm ( n1 , n2) n1 = int; beginn
Start Datensatz (Rekord)
n2
= int;: anzahl der
Datensätze
siehe wie bei deleteForm, allerdings werden die
Datensätze hier als nicht gelöscht gekennzeichnet.
edbAppend
()
Erzeugt
einen neue leere Datensatzstruktur im Speicher. Mittels edbPUT() kann nun in den Feldern des Datensatzes
geschrieben werden und später mittels edbWrite() in die
Datenbank gespeichert.
edbPut ( n1 , n2 )
n1 = char; Zeiger auf einem String Index Name vom Datensatz
n2
= char; Zeiger auf einem
String der Text oder die Daten selber
Der
Text oder die Daten von N2 werden in den Index von N1 des Records geschrieben.
Existiert der Index-Name N1 nicht,
ist die Rückgabe der Fehlercode, ansonsten
wird die Nummer des Indexes zurückgegeben, bzw. alles >0 ist als erfolg
anzusehen.
edbPutIDX
( n1 , n2 )
N1
= int; Nummer des Indexes
in dem Rekord
N2
= char; Zeiger auf einem
String der Text oder die Daten selber
Der
Text oder die Daten von N2 werden direkt in den Index N1 vom Records
geschrieben. N1 gibt den Index selber an,
beginnend bei 1.
Existiert der Index-Name N1 nicht, ist die Rückgabe der Fehlercode,
ansonsten wird 0 zurückgegeben.
edbWriteRecord
( n1 )
n1
= int; Nummer des Rekords
Die
Datensatz-Felder (Index) werden nun in die Datenbank auf Rekord N1 geschrieben.
Existiert
der Rekord schon, werden die Daten überschrieben, bei einem leeren Rekord
werden
die
Daten dort eingetragen. Ist das
Rekord-Feld nicht vorhanden bzw. außerhalb des
Bereiches,
erfolgt eine Fehlernummer <1. Um
Etwas an der Datenbank anzuhängen, ist
Als
Wert NULL zu übergeben oder es kann als Rekord der nächst höhere als vorhanden
Angegeben
werden.
edbReadRecord
(n1)
n1
= int; Nummer des Rekords
Der
Datensatz - Rekord mit der Nummer N1 wird in den Speicher geladen. Mittels des
edbGet
Oder
edbGetIDX kann dann der Index selber ausgelesen werden. Existiert der Datensatz
nicht,
erfolgt
als Rückmeldung einer der Fehlercodes (siehe dazu edbOpen),.
-
Wird
der Wert 0 zurückgegeben, wurde der Datensatz erfolgreich eingelesen.
-
Wird
der Wert 8 zurückgegeben, wurde der
Datensatz erfolgreich eingelesen,
der Datensatz ist jedoch Schreibgeschützt.
Wenn
für N1 der Wert NULL übergeben wurde, so wird der aktuelle Interne Datensatz
benutzt,
der
Zuletzt bekannt war, bzw. mittels edbGO gesetzt wurde, gleichzeitig wird der
Zeiger um 1
erhöht, so das bei einem erneutem Zugriff mittels
ReadRecord der nächste Datensatz gelesen wird.
Wird ReadRecord direkt über eine Nummer übergeben,
so wird dieser Datensatz eingelesen, der
Interne Zeiger aber nicht auf diesen gesetzt.
edbGet
( n1 , n2)
n1
= char; Zeiger auf einem
String Index Name vom Datensatz
n2
= char; Zeiger auf einen
Speicherbereich für Buffer, Inhalt des
Index
Aus
dem aktuellen Rekord wird der Inhalt des Indexes N1 in den Buffer N2
geschrieben.
edbGetIDX
( n1 , n2)
n1
= int; Nummer des Indexes
im Rekord
n2
= char; Zeiger auf einen
Speicherbereich, Buffer, Inhalt des
Index
Der
Text / die Daten werden hier direkt durch Angabe der Index Nummer N1 in den
Buffer N2
geschrieben.
edbGetIndexLen n1 = Char; Index Name von Datensatz
Die
maximale Länge des Datenfeldes mit den Index-Namen N1 wird zurückgegeben.
edbGetIndexLenIDX n1 = int; Nummer von Index-Datensatz
Die
maximale Länge des Datenfeldes von Indes Feld
N1 wird zurückgegeben.
edbGetInfo ( n1 , n2 ) n1 = char; Zeiger
auf einem String Datenbank-Variable auslesen
n2
= char; Zeiger auf einem Speicherbereich,,
wo die, Informationen hinterlegt werden
Die Internen System-Variablen über die Datenbank
werden ausgelesen und in N2 zurückgegeben.
N1 gibt die Variable an:
&dbRecCount Anzahl der Datensätze in der
aktuellen DB
&dbFCount Anzahl der Felder in ein
Datensatz
&dbMemo Besitzt der Datensatz ein Memo,
so ist N2 eins, sonst NULL
$dbFName
, Feld vom Feld “Feld” wird der
Feld-Name zurückgegeben
$dbFType
, Feld vom Feld „Feld“ wird der
Typ des Feldes zurückgegeben
&dbFLen , Feld vom
Feld „Feld“ wird die Länge des Feldes zurückgegeben.
edbSearch ( n1 , n2, n3 , n4 , n5)
n1 = char; Such Text in der Datenbank (Filter 1), nach was soll gesucht werden
n2
= char; Muster, wo gesucht
werden soll (Filter 2), wo soll gesucht werden.
n3
= int; Genauigkeit der
Suche (von 1 bis 4, Standart ist 2)
n4 = int; Record
Startposition
n5 = int; Anzahl Records, in dem gesucht
werden soll
(NULL,
für alle Datensätze)
Sucht
in der aktuellen Datenbank nach den String N1 in den Index-Feldern N2. In N4
kann die Start-Position
Angegeben
werden (Rekord), ab wo gesucht werden soll, in N5 kann noch zusätzlich die
Anzahl angegeben, werden,
wie
viele Rekord Datensätze durchsucht werden sollen. Um die Ganze Datenbank Zu durchsuchen, ist hier NULL zu
übergeben. Zurückgegeben wird die Rekord Nummer, wo der String gefunden wurde, oder Null,
falls keine Übereinstimmung
eintraf.
Zusätzlich wird bei einem Such - Erfolg der Interne Datenzeiger auf die
Position gesetzt, wo der Datensatz gefunden wurde.
N2
kann dazu verwendet werden, um einen Filter beim Suchen anzulegen, in welchen
Index-Zweigen überhaut
gesucht
werden soll. Mehrere Index-Zweige können mittels dem „+“ Zeichen Addiert
werden. Wird in N2
nichts
übergeben (Leerstring), so werden alle Index-Felder von Typ C, N und D
durchsucht.
Durch
richtige Kombination von N1 und dN2 mit entsprechenden Inhalten kann so jeder
beliebige Filter erstellt werden.
N3
legt die Genauigkeit der Suche fest, also wie gesucht werden soll. Wird hier
eine NULL übergeben, ist die Genauigkeit zwei.
Genauigkeit: Eigenschaft
1
Alle
vorkommen von N1 in der Datenbank werden gefunden. (egal wo)
2
Alle
vorkommen von N1 in der Datenbank, die dem Anfang entsprechen, werden gefunden
3
N1
muss in der Datenbank vorkommen.
4
Wie
1, jedoch wird die gross / kleinschreibung des Wortes von N1 beachtet.
5
N1
muss EXTAST in gross und kleinschreibung in der Datenbank vorhanden sein.
Diese
Funktion ist SEHR schnell, eine Datenbank mit
*** 50 Tausend *** Feldern wird in knapp 1 Sekunde durchsucht,
egal,
ob diese nun verschlüsselt ist oder nicht. Es spielt auch keine Rolle, wie groß
die Datenbank letztendlich ist.
Beispiele:
edbSearch ( „Hallo Welt“ , „ Feld1“ , 2 , 1 , 0
)
edbSearch ( „Hallo Welt“ , „Feld1+Feld2+Feld4“ , 3 ,
500, 0)
edbSearch ( „Happy Computer“ , „“ ,
0, 30, 400)
edbGO
( n1 )
n1
= char; Zeiger auf einem
String Neue Position des Datenzeigers,
Der
Interne Datenzeiger der Datenbank wird auf den Rekord mit der Nummer N1
gesetzt, bzw. durch das Ersatzzeichen
Wird
der Zeiger um 1 erhöht, um 1 erniedrigt oder am Anfang bzw. zum Ende hin
gesetzt und dieser neue Datensatz
wird
gelesen. Der Wert wird als String übergeben
Zeichen Beschreibung
-------------------------------------------
> Der Rekord Zeiger
wird um 1 erhöht
<
Der Rekord Zeiger wird um 1 veringert
:<
Es wird zum
Anfang der Datenbank gesprungen
>:
Es wird zum Ende der Datenbank gesprungen
durch Angabe einer Zahl direkt auf den Rekord.
edbLook
( n1 ) n1
= inr; Nummer des
Datensatzes
Ein
Datensatz kann als „in gebrauch“,
oder „Look“ gesetzt werden, wodurch
dieser dann nicht gelesen werden
kann (jedoch geschrieben). Wird versucht, ein Datensatz zu lesen, der geLookt ist, ist das ergebniss ein
Fehlercode.
N1 ist die Nummer eines Datensatzes.
edbUnLook
( n1 ) n1 =
int; Nummer des
Datensatzes
Der
Datensatz mit der Nummer N1 wird wieder Freigegeben. Unlook.
edbLookForm ( n1 , n2)
edbUnLookForn ( n1 , n2 )
n1 = int; Start Nummer des Datensatzes
n2
= int; anzahl Datensätze
Beginnend
mit dem Datensatz N1 werden N2 Datensätze als Look bzw. UnLook gekennzeichnet.
edbWriteProtect
( n1 , n2 ) n1 = int; Nummer des Datensatz es
n2
= int; 0 = schreiben
erlaubt / 1 = WriteProtect
Ein
Datensatz kann auf WriteProtect gesetzt werden, (Schreibgeschützt)., wodurch
ein Datensatz weder gelöscht,
noch
verändert werden. N1 ist eine gültige Datensatznummer, N2 kann jeweils 0 oder 1
sein. Eine 1 bedeutet, das der
Datensatz
Schreibgeschützt ist.
edbWriteProtectForm ( n1 , n2 , n3 )
n1 = int; Start -Nummer des Datensatz es
n2
= int; Anzahl der zu
bearbeitenden Datensätze
n3
= int; 0 = schreiben
erlaubt / 1 = WriteProtect
Setzt
einen ganzen Block von Datensätzen auf
Write-Protect bzw zurück.
edbKillKompare()
Alle
Datensätze mit gesetztem lösch - Flags werden nun endgültig aus der Datenbank
entfernt, und die Datenbank
wird
neu erstellt. Anschließend ist der Rekord Zeiger auf dem Anfang der neuen
Datenbank gesetzt.
edbGetLastUpdate
()
Ermittelt
das Datum des letzten Zugriffs auf die Datenbank. Das Datum wird als Zahl in DB-Format zurückgegeben.
Diese Funktion macht nur im Zusammenhang mit
SetLastUpdate sinn !!!
edbSetLastUpdate
()
Schreibt
das Aktuelle Datum als Bezug für GetLastUpdate in die Datenbank.
Die
Funktionen in der DLL verändern dieses Datum nicht, da es oft wünschenswert
ist, das Datum für den letzten
Zugriff
selber zu bestimmen, wann es gesetzt werden soll.
edbWriteMemo
( n1 , n2 ) n1 = Long; Adresse,
der ein Speicherbereich angibt, wo die
Daten stehen.
n2
= Int; Länge der Daten von
N1, (Long Wert)
Besitzt
der Datensatz (bzw. die Datenbank) ein MEMO
Feld, so können in diesen beliebige
Daten abgelegt werden, das Memo
Feld
ist demnach nicht für Text bestimmt. Bilder oder Sound Files sind ebenso
möglich. Ist der Datensatz
Schreibgeschützt,
(Write
Protect), so kann auch nicht in ein MEMO Feld geschrieben werden.
N1
ist die Adresse des Speichers, in denen sich die Daten befinden. N2 gibt die
Länge der Daten an.
edbReadMemo
( n1 )
n1
= long; 4 Byte Speicherbereich, der eine Adresse als Long aufnehmen kann.
Besitzt
der Datensatz ein Memo – Feld, so wird der Inhalt dessen im Arbeitsspeicher
geladen. In N1 ist dann die Adresse
dieses
Speichers als LONG zu finden. N1 muss
also ein 4 Byte Speicherbereich sein, der die Adresse aufnimmt.
Existiert
kein Memo Feld, ist N1 Null.
Ebenso als Rückgabewert der
Funktion ein Fehlercode. Bei Erfolg ist dann
die
Rückgabe die Größe des Speichers, bzw. des MEMO Feldes.
EasyDB fordert selbständig den passenden Speicher
für den Inhalt des MEMO - Feldes an, lädt diesen in diesen
Speicherbereich
und schreibt die Adresse des Speicherbeginns in N1 als Long.
Fehler-Codes:
Rückgabe
der DLL >0 =
Datenbank geöffnet, Anzahl der Einträge in der DB
-1 =
Datei nicht vorhanden, konnte nicht geöffnet werden
-2 = Falscher
Username oder falsches Kennwort
-3
= Kein EDB-Dateiformat.
-4 = Datei bereits geöffnet
-5 = Datensatznummer Existiert nicht (Rekord)
-6 = Datensatz Feld existiert nicht (Index)
-7 = Datensatz Looked (kein Lesezugriff)
-8 = Datensatz schreibgeschützt
-9 = Memo Feld nicht Existent
-10
= Allgemeiner Fehler, nicht zugeordnet.
-13
= Datenbank Fehler
-14
= File nicht vorhanden, Datenbank Datei
ist bereits in Gebrauch ...
-21
= Login Fehlgeschlagen über Netzwerk
-22
= Max. 10 gleichzeitige Verbindungen möglich
-23
=
-24
= Dateinummer ist bereits belegt durch andere Datenbank
-25
= Funktion nicht in DLL
-26
= Interner Fehler in DLL (Support: mailto:galaxy@mrk-soft.de)
-27
= Fehler beim Laden der DLL
-28
= Fehler beim Herstellen der Verbindung über Netzwerk
-29
= Der Server konnte nicht erstellt werden.
©
2002, MRK-Soft vom:
22.4.2002