Seite 1 von 1

easyDB-lib

Verfasst: 23.10.2004 19:15
von Maurizio555
Hallo!
Ich habe eine Frage zur easyDB-lib.
Wenn ich eine DB erzeuge, gleich danach ein paar Records schreibe, dann funktioniert alles einwandfrei.
Wenn ich nach dem Erzeugen die DB schliesse, sie danach wieder öffne, die Records schreibe und wieder schliesse, dann wird nichts reingeschieben!
Siehe Beispiele unten.
Dateiname, name und pass stimmen!
Auch edbUse(0) hilft nichts.
Hatte schon jemand das Problem?
Weiß jemand an was es liegen könnte?

So funktioniert es:

edbCreateNulldb(FileName.s, name.s, pass.s)
edbOpen(0, FileName, name.s, pass.s)
edbCreateAddField("NAME, C, 20, 0")
edbAppend()
edbPut ("NAME", Name.s)
edbWriteRecord(0)
edbClose(0)


So funktioniert es nicht:

edbCreateNulldb(FileName.s, name.s, pass.s)
edbOpen(0, FileName, name.s, pass.s)
edbCreateAddField("NAME, C, 20, 0")
edbClose(0)
;
edbOpen(0, FileName, name.s, pass.s)
edbAppend()
edbPut ("NAME", Name.s)
edbWriteRecord(0)
edbClose(0)

edbGetInfo

Verfasst: 23.10.2004 20:45
von Maurizio555
Hallo!
Hat sich erledigt, der Fehler lag doch woanders :cry:
Hab' aber trotzdem noch 'ne Frage <) über edbGetInfo:
$dbFName soll den Namen eines Feldes zurückgeben.
Die Hilfe zur lib sagt:
$dbFName , Feld vom Feld "Feld" wird der Feld-Name zurückgegeben.
Kann das jemand auf Deutsch übersetzen? :lol:
Was soll ich an edbGetInfo übergeben?
edbGetInfo("$dbFName , 1", *smem) sollte doch den Namen des Feldes 1
zurückgeben? Funzt aber nicht. Wenn ich statt der Feldnummer den Feldnamen übergebe, dann kenne ich den Namen bereits und brauche die Funktion nicht mehr.
Verstehe ich nicht :cry:

Verfasst: 24.10.2004 03:04
von nicolaus
Also ich nehm mal an du verwendest die lib für PB und nich die dll und wenn du dir da die hilfe anschaust steht da das drin:
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.
das heist also das du das so machen kannst:

Code: Alles auswählen

mem = AllocateMemory(16)
edbGetInfo("&dbRecCount",*mem)
return_value.s = PeekS(*mem)
In dem Beispiel oben hast du dann in der variable return_value drin stehen was dir edbGetInfo() zurück gibt (hier halt die anzahll der records in der db)
Du mußt halt einfach die Strings die in der hilfe auch stehen wie z.b. &dbRecCount als string bei n1 übergeben also "&dbRecCount".

Hoffe das hat dir geholfen.

MfG Nico

Verfasst: 24.10.2004 10:06
von Maurizio555
Hallo!
Ja, das war mir schon klar. Nur: in der Hilfe steht '$dbFName , Feld'.
Ich habe jetzt die Leerzeichen vor und nach dem Komma gelöscht und jetzt funktionierts!!! :allright: