Seite 1 von 1
Mit einer *.exe alles möglich?
Verfasst: 06.03.2020 17:59
von patoga
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)
Re: Mit einer *.exe alles möglich?
Verfasst: 06.03.2020 19:21
von Andesdaf
Siehe Hilfe zu UseMySQLDatabase(): du musst die libmariadb.dll mitliefern.
Re: Mit einer *.exe alles möglich?
Verfasst: 08.03.2020 17:33
von Macros
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:
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
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.
Re: Mit einer *.exe alles möglich?
Verfasst: 08.03.2020 23:25
von patoga
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?
Re: Mit einer *.exe alles möglich?
Verfasst: 09.03.2020 00:03
von Macros
Ja das reicht vollkommen aus.
Du kannst bei UseMySQLDatabase([BibliothekName$]) auch den optionalen Parameter mit angeben und die Bibliothek irgendwo ablegen.