Easy - Datenbank DLL for Windows

 

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.

 

 

 

Einige Worte zu EasyDB

 

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