Hallo.
Ist es möglich, allein mit einer purebasic.exe auf einem Zielrechner, Daten in eine entfernte MySQL Datenbank zu schreiben.
"Allein" bedeutet ohne Abhängigkeiten irgendwelcher Bibliotheken, wzb. libmysql.dll oder ODBC.
Vorstellbar wäre auch, dass eventuell erforderliche *.dll beim ersten Aufruf durch die purebasic.exe installiert wird. (aber nicht so gern)
Mit einer *.exe alles möglich?
Re: Mit einer *.exe alles möglich?
Siehe Hilfe zu UseMySQLDatabase(): du musst die libmariadb.dll mitliefern.
Win11 x64 | PB 6.20
Re: Mit einer *.exe alles möglich?
Du kannst die dll mit IncludeBinary in deine EXE aufnehmen und dann beim Start auf die Platte schreiben.
Und wenn du willst beim Beenden auch wieder löschen.
Hier ein gekürzter Ausschnitt aus einem meiner Programme:
Alternativ kannst du sie dann sogar im Arbeitsspeicher ausführen.
Aber dazu würde ich dir ausdrücklich nicht raten. Luis hat da eine Lösung im englischen Forum präsentiert.
Und wenn du willst beim Beenden auch wieder löschen.
Hier ein gekürzter Ausschnitt aus einem meiner Programme:
Code: Alles auswählen
Procedure CheckFile(file$,*start,*end)
If FileSize(file$)<1
If CreateFile(1,file$)
WriteData(1,*start,*end-*start)
CloseFile(1)
Else
MyRequester_Box("Error",~"The application need write permissions in its directory.\nIf neccessary run it as admin under Windows\n"+
"or grant the permissions under Linux",0,0,0,1)
End
EndIf
EndIf
EndProcedure
If FileSize("runtime")<>-2
CreateDirectory("runtime")
EndIf
CompilerIf #PB_Compiler_OS=#PB_OS_Windows
CheckFile("runtime/cebomsr-1.6-x86_64.dll",?cebomsr64,?cebomsr64_end)
CompilerElseIf #PB_Compiler_OS=#PB_OS_Linux
CheckFile("runtime/libcebomsr-1.6.so",?cebomsrLin,?cebomsrLin_end)
CompilerEndIf
; - Programmende
CompilerIf #PB_Compiler_OS=#PB_OS_Windows
cebomsr64:
IncludeBinary "runtime_all/cebomsr-1.6-x86_64.dll"
cebomsr64_end:
CompilerElseIf #PB_Compiler_OS=#PB_OS_Linux
cebomsrLin:
IncludeBinary "runtime_all/libcebomsr-1.6.so"
cebomsrLin_end:
CompilerEndIf
Aber dazu würde ich dir ausdrücklich nicht raten. Luis hat da eine Lösung im englischen Forum präsentiert.

Re: Mit einer *.exe alles möglich?
Vielen Dank für eure Antworten. Das hat mich weiter gebracht.
Ist es denn erforderlich, die libmariadb.dll zu registrieren?
Ich habe irgendwo gelesen, dass es reicht, diese im Programmpfad zu haben?
Ist es denn erforderlich, die libmariadb.dll zu registrieren?
Ich habe irgendwo gelesen, dass es reicht, diese im Programmpfad zu haben?
Re: Mit einer *.exe alles möglich?
Ja das reicht vollkommen aus.
Du kannst bei UseMySQLDatabase([BibliothekName$]) auch den optionalen Parameter mit angeben und die Bibliothek irgendwo ablegen.
Du kannst bei UseMySQLDatabase([BibliothekName$]) auch den optionalen Parameter mit angeben und die Bibliothek irgendwo ablegen.
