easyDB-lib
- Maurizio555
- Beiträge: 53
- Registriert: 03.10.2004 10:00
- Wohnort: BW
easyDB-lib
Hallo!
Hab' die easyDB-lib runtergeladen und im Forum (auch im alten-) nach Beispielanwendungen gesucht, aber nichts brauchbares gefunden. Das beigelegte (zur .lib) Beispiel ist ein biss. mager...
Weiß da jemand 'was?
Hab' die easyDB-lib runtergeladen und im Forum (auch im alten-) nach Beispielanwendungen gesucht, aber nichts brauchbares gefunden. Das beigelegte (zur .lib) Beispiel ist ein biss. mager...
Weiß da jemand 'was?
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).
Tsue Hung (525 n.Chr.).
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Vielleicht hilft Dir dieses kleine Beispiel?
Code: Alles auswählen
Procedure.s edbGetH(p1.s)
p2 = edbGetIndexLen(p1)
*smem = AllocateMemory(p2) ;GlobalAlloc_(0, p2)
res = edbGet(p1,*smem)
Value.s = PeekS(*smem)
FreeMemory(*smem) ;GlobalFree_(*smem)
ProcedureReturn Value.s
EndProcedure
Procedure CreateNewAdressDB(FileName.s)
edbCreateNulldb(FileName, "", "")
edbOpen(0, FileName, "", "")
edbCreateAddField("NAME, C, 50, 0")
edbCreateAddField("VORNAME, C, 50, 0")
edbCreateAddField("STRASSE, C, 50, 0")
edbCreateAddField("PLZ, C, 50, 0")
edbCreateAddField("WOHNORT, C, 50, 0")
edbCreateAddField("TELEFON, C, 50, 0")
edbCreateAddField("HANDY, C, 50, 0")
edbCreateAddField("EMAIL, C, 50, 0")
edbCreateAddField("URL, C, 50, 0")
edbAppend()
edbPut ("NAME", "Schulz")
edbPut ("VORNAME", "Thomas")
edbPut ("EMAIL", "ts-soft@web.de")
edbPut ("URL", "http://de.geocities.com/ts_softde/")
edbWriteRecord(0)
edbAppend()
edbPut ("NAME", "Mustermann")
edbPut ("VORNAME", "Georg")
edbPut ("STRASSE", "Musterstr. 1")
edbPut ("PLZ", "00000")
edbPut ("WOHNORT", "Musterstadt")
edbPut ("TELEFON", "0190-332332")
edbWriteRecord(0)
EndProcedure
CreateNewAdressDB("Adress.db")
found = edbSearch("MUSTERMANN", "", 2, 0, 0)
Debug edbGetH("VORNAME")
found = edbSearch("Schulz", "", 2, 0, 0)
Debug edbGetH("VORNAME")
Debug edbGetMaxRecord()
edbClose(0)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Maurizio555
- Beiträge: 53
- Registriert: 03.10.2004 10:00
- Wohnort: BW
Beispiele
Hallo und vielen Dank erst mal.
Wenn ich dein Beispiel Compiliere, erhalte ich folgende Meldung:
Error at line 3: Can't allocate a memory block with a negative size!
Ist es richtig (bin neu in Pure Basic) wenn ich vermute, daß es sich nicht um einen Compiler-Fehler sondern um eine Compiler-Meldung handelt, die ignoriert werden sollte weil aus folgenden Grund entsteht:
Wenn der Compiler von oben nach unten compiliert, hat p2 noch keinen Wert, also NULL (eigentlich auch nicht negativ). Da p2 erst im laufenden Betrieb sein Wert erhält und dieser während der Compilierungszeit noch nicht bekannt ist, meldet der Debugger den Fehler.
Wie auch immer, hat noch jemand Beispiele? Vielleicht gut kommentierte?
Wenn ich dein Beispiel Compiliere, erhalte ich folgende Meldung:
Error at line 3: Can't allocate a memory block with a negative size!
Ist es richtig (bin neu in Pure Basic) wenn ich vermute, daß es sich nicht um einen Compiler-Fehler sondern um eine Compiler-Meldung handelt, die ignoriert werden sollte weil aus folgenden Grund entsteht:
Wenn der Compiler von oben nach unten compiliert, hat p2 noch keinen Wert, also NULL (eigentlich auch nicht negativ). Da p2 erst im laufenden Betrieb sein Wert erhält und dieser während der Compilierungszeit noch nicht bekannt ist, meldet der Debugger den Fehler.
Wie auch immer, hat noch jemand Beispiele? Vielleicht gut kommentierte?
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).
Tsue Hung (525 n.Chr.).
-
christian_dev
- Beiträge: 2
- Registriert: 10.10.2004 13:13
- Maurizio555
- Beiträge: 53
- Registriert: 03.10.2004 10:00
- Wohnort: BW
AllocateMemory
Hallo!
Verstehe nicht was du meinst.
Im betroffen Satz "*smem = AllocateMemory(p2)" wird doch nur 1 Par übergeben und der Befehl funktioniert mit 1 Par auch einwandfrei.
Das Problem ist, daß "p2" beim Compilieren noch kein Wert erhalten hat (dies geschieht erst wenn die Anwendung läuft), deswegen die Compiler-Meldung. Warum der Compiler annimmt, daß p2 negativ ist, weiß ich auch nicht. Ersetze ich "(p2)" mit "(p2+1)", nimmt er an, der Wert sei NULL. Esetze ich es durch "(p2+2)", kommt keine Meldung mehr.
Ich dacht, beim Deklarieren on-the-fly wird der Variable (wie hier p2) NULL zugewiesen???
Verstehe nicht was du meinst.
Im betroffen Satz "*smem = AllocateMemory(p2)" wird doch nur 1 Par übergeben und der Befehl funktioniert mit 1 Par auch einwandfrei.
Das Problem ist, daß "p2" beim Compilieren noch kein Wert erhalten hat (dies geschieht erst wenn die Anwendung läuft), deswegen die Compiler-Meldung. Warum der Compiler annimmt, daß p2 negativ ist, weiß ich auch nicht. Ersetze ich "(p2)" mit "(p2+1)", nimmt er an, der Wert sei NULL. Esetze ich es durch "(p2+2)", kommt keine Meldung mehr.
Ich dacht, beim Deklarieren on-the-fly wird der Variable (wie hier p2) NULL zugewiesen???
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).
Tsue Hung (525 n.Chr.).
Re: AllocateMemory
Die Fehlermeldung kommt bestimmt nicht vom Compiler,Maurizio555 hat geschrieben:Das Problem ist, daß "p2" beim Compilieren noch kein Wert
erhalten hat (dies geschieht erst wenn die Anwendung läuft),
deswegen die Compiler-Meldung.
Warum der Compiler annimmt, daß p2 negativ ist, weiß ich auch
nicht. Ersetze ich "(p2)" mit "(p2+1)", nimmt er an, der Wert
sei NULL. Esetze ich es durch "(p2+2)", kommt keine Meldung
mehr.
sondern vom Debugger. Der Debugger hat nichts mit dem
Compiler zu tun, sondern dann läuft Dein Programm schon.
Code: Alles auswählen
Procedure.s edbGetH(p1.s)
p2 = edbGetIndexLen(p1)
*smem = AllocateMemory(p2) ;GlobalAlloc_(0, p2)zurückgegeben hat.
Rückgabewerte sollte man auswerten. -1 steht hier vielleicht
für einen Fehler bei edbGetIndexLen().
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
- Maurizio555
- Beiträge: 53
- Registriert: 03.10.2004 10:00
- Wohnort: BW
Compiler/Debugger
Sorry,
natürlich meinte ich "Debugger-Meldung" und nicht Compiler-Meldung.
Und ja, natürlich wird der Wert -1 von der Funktion zurückgegeben.
Hab' heute nacht zu wenig geschlafen
Aber zurück zu den Beispielcodes. Weiß jermand 'was?
natürlich meinte ich "Debugger-Meldung" und nicht Compiler-Meldung.
Und ja, natürlich wird der Wert -1 von der Funktion zurückgegeben.
Hab' heute nacht zu wenig geschlafen
Aber zurück zu den Beispielcodes. Weiß jermand 'was?
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).
Tsue Hung (525 n.Chr.).
- Maurizio555
- Beiträge: 53
- Registriert: 03.10.2004 10:00
- Wohnort: BW
easyDB-lib über Netzwerk
Hallo!
Was mich am Meisten interessieren würde:
laut Hilfe der easyDB-lib soll ein Zugriff auf die Datenbank per Netzwerk möglich sein. (Beispiele aus den Fehler-Codes der Hilfe: -22=Max. 10 gleichzeitige Verbindungen möglich. -28= Fehler beim Herstellen der Verbindung über Netzwerk. -29=Der Server konnte nicht erstellt werden.).
Es wird aber nirgendwo erwähnt, wie das überhaupt realisiert wird!
Was mich am Meisten interessieren würde:
laut Hilfe der easyDB-lib soll ein Zugriff auf die Datenbank per Netzwerk möglich sein. (Beispiele aus den Fehler-Codes der Hilfe: -22=Max. 10 gleichzeitige Verbindungen möglich. -28= Fehler beim Herstellen der Verbindung über Netzwerk. -29=Der Server konnte nicht erstellt werden.).
Es wird aber nirgendwo erwähnt, wie das überhaupt realisiert wird!
Mit fernem Wasser läßt sich nicht ein nahes Feuer löschen.
Tsue Hung (525 n.Chr.).
Tsue Hung (525 n.Chr.).
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Für den Netzwerkzugriff brauchst Du die "netbase100.dll" vom gleichem Autor (MRK-Soft, http://www.mrk-soft.de ). Diese DLL befindet sich im aktuellen Paket nicht, so das Du den Autor kontaktieren solltest. Mir ist nicht bekannt, ob ich diese DLL weitergeben darf, da diese DLL's ursprünglich Shareware waren
Ich hoffe dies hilft Dir ein bißchen weiter. Mein Beispiel läuft ab PB 3.90 fehlerfrei
Ich hoffe dies hilft Dir ein bißchen weiter. Mein Beispiel läuft ab PB 3.90 fehlerfrei
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
