gb.db2.sqlite3

Spezielle Fragen zu PostgreSQL, MySQL, SQLite, SQL ...
Antworten
Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

gb.db2.sqlite3

Beitrag von Poly » So 19. Jan 2025, 20:27

Ich habe gerade versucht das Programm "DatabaseEditorDesignTimeConnection 1.0.0" aus der Gambas-Software Farm nachzuvollziehen und dabei ist mir ein anderes Verhalten der neuen gb.db2 Komponenten aufgefallen.

Wenn ich mit den eingeschalteten neuen gb.db2- Komponenten, also gb.db2.form und gb.db2.sqlite3 unter Verwendung der Project-Verwaltung eine neue Verbindung (Connection) erstellen, dann wird meine Sqlite3-Datenbank im Projektordner nicht gefunden.
Das Programm bricht mit einer Fehlermeldung ab. Es werden also keine Daten angezeigt.

Stattdessen Verweist die lokale Variable sHost immer auf mein Homeverzeichnis.

Bei der Verwendung der alten Komponenten, wie sie noch in dem Programm von MartinFischer (Gambas Farm) verwendet werden, wird die Datenbank hingegen gefunden.

Abhilfe: Ich trage einfach im Projektordner unter dem Ordner .connection in die Datei hcon.connection die Zeile

Code: Alles auswählen

Path="kompletter Pfad zur sqlite-Datei"
ein. Wobei hcon hier einfach der Name meiner Verbindung ist.

Das Problem ist hier nur, dass ich diesen Eintrag dann bei jeder Verschiebung der Datenbank ändern muss.

Die manuelle Erstellung der gesamten Verbindung unter der Verwendung von

Code: Alles auswählen

hcon.host = Application.path
funktioniert natürlich auch.

Kann dieses Verhalten hier jemand bestätigen? Ist dies ein Bug, eine Besonderheit von sqlite3 oder wurde das vielleicht sogar schon behoben?

Ich verwende unter Devuan die Gambas-Version. 3.20.0 fff98

Danke
Ceterum censeo Goo..... esse delendam

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » Fr 24. Jan 2025, 21:18

Kurzes Update: Auch in der neuen, aktuellen Version, Gambas 3.20.1 wird eine Datenbank im Projektordner nicht ohne die Änderung der oben genannten Datei erkannt.
Ceterum censeo Goo..... esse delendam

Benutzeravatar
tionov
Site Admin
Beiträge: 559
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von tionov » So 26. Jan 2025, 07:24

Poly hat geschrieben:
So 19. Jan 2025, 20:27
Kann dieses Verhalten hier jemand bestätigen? Ist dies ein Bug, eine Besonderheit von sqlite3 oder wurde das vielleicht sogar schon behoben?
Ich verwende unter Devuan die Gambas-Version. 3.20.0 fff98
Ich habe es nicht ausprobiert, aber wenn du ein kleines Beispielprojekt machst, das das Verhalten zeigt, inklusive einer Beschreibung des Fehlers, trage ich es im Bugtracker ein (kannst du auch selber machen).

Die db2-Komponenten sollten exakt so funktionieren wie ihre Vorgänger. Darum ist es ein Bug.
Alles Gute,

tionov

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » So 26. Jan 2025, 12:48

tionov hat geschrieben:
So 26. Jan 2025, 07:24

trage ich es im Bugtracker ein (kannst du auch selber machen).
Herzlichen Dank tionov,

es wäre wirklich sehr nett, wenn Du das mit dem Bugtracker übernehmen würdest.
Ich habe noch nie einen Bug-Report erstellt :/

Hier ist mal eine ganz einfaches Beispiel zur Demonstration

https://cloud.disroot.org/s/Fde2MTpBx4SQxon

Ich habe lediglich eine kleine sqlite3-Datenbank test.sqlite selber erstellt und in den Projektordner gelegt.

Dann habe ich über die IDE der Projektübersicht eine neue Verbindung (Connection) erstellt.
SQLite ausgewählt und den Pfad zu dieser Datenbank angegeben und die Datenbank ausgewählt.

Wenn ich jetzt das Programm starte wird diese Datenbank aber nicht automatisch gefunden.
Es gibt den Fehler:

Database does not exist

und in den lokalenVariablen wird auf ein Eintrag verwiesen denn ich in die Datei .connection/hcon.connection
zum Demonstration geschrieben habe: "here you must put in the complete path to the application"

Erste wenn ich im Projektordner den kompletten Pfad zu dieser Datenbank in diese Datei eintrage:

Code: Alles auswählen

/Datenbank_mit_IDE/.connection/hcon.connection 
wird die Datenbank erkannt und das Programm ausgeführt.

Als Beispiel wie das dann in dieser Datei aussehen könnte:

Code: Alles auswählen

Path="/home/User/Databases/Datenbank_mit_IDE"

Wenn ich die Datenbank manuell erstelle, so wie ich es in der Beispiel-Datenbank auch getan habe, aber den Text auskommentiert habe.
Würde dies dem Eintrag:

Code: Alles auswählen

.Host = Application.path
entsprechen.

Ich denke es könnte ein Bug sein, dass dieser Eintrag nicht automatisch vorgenommen wird.

Ich würde mich wirklich sehr freuen, wenn Du das mal prüfen könntest und den Bug-Bereicht machen würdest.

Danke :)
Ceterum censeo Goo..... esse delendam

Benutzeravatar
tionov
Site Admin
Beiträge: 559
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von tionov » So 26. Jan 2025, 13:11

Das ist mir jetzt unverständlich. Wenn ich in deinem Projekt eine neue Connection 'hcon2' anlege, darin der Pfad zur db 'test.sqlite' angebe, kann ich die Connection öffnen und auch nachdem ich das Projekt geschlossen und wieder geöffnet habe, ist die Connection nach wie vor funktionsfähig.

Was ist das Problem? (Ich habe den Thread nicht gelesen)
Alles Gute,

tionov

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » So 26. Jan 2025, 13:56

Welche Version von Gambas nutzt Du?

Also bei mir kann ich die Verbindung nicht öffnen.
Der Host wird automatisch auf das USER-Verzeichnis gesetzt.

Also in den lokalen Variablen wird angezeigt:
sHost="/home/user"
sPath="/home/user/test.sqlite"

und zwar egal, wo sich die Datei befindet.

bei mir wäre es z.B.

/home/user/Coding/Gambas/Datenbanken_try


Aber gut, dann ist es kein Bug, sondern muss ein Problem von meinem System sein.

Mit gb.db.sqlite3 ging es mit gb.db2.sqlite3 und gb.db2.form irgendwie nicht mehr :(

Herzlichen Dank für Deine Mühe :)
Ceterum censeo Goo..... esse delendam

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » So 26. Jan 2025, 14:30

Ich kann das Ganze auch etwas genauer angeben.

Es scheint wirklich ein Problem der Komponente gb.db2.sqlite3 zu sein.

Im Stack backtrack finde ich folgendes:


unter gb.db2.sqlite3

Code: Alles auswählen

_DatabaseDriver_Sqlite3.FindDatabase.64
_DatabaseDriver_Sqlite3.Open77
zu

_DatabaseDriver_Sqlite3.FindDatabase.64

gehören folgende lokale Variablen:

Code: Alles auswählen

bCreate    False
sHost        "home/user"
sName      "test.sqlite"
sPath        "/home/user/test.sqlite"
sTemp      ""

Also zumindest auf meinem System wird der Datenbank nicht erkannt und der Pfad (Path) der Datenbank nicht richtig
aus der Auswahl zusammengesetzt. Stattdessen werden nur die vorgegebenen lokalen Variablen erkannt.
Verschiebe ich die Datenbank in dieses Verzeichnis: /home/user wird sie erkannt.

Mein System:

Gambas=3.20.1 c98578e (master)
OperatingSystem=Linux
Distribution=Devuan GNU/Linux 5 (daedalus)
Kernel=6.1.0-21-amd64
Architecture=x86_64

Wie erstelle ich denn ein richtigen BugReport?

Danke :)
Ceterum censeo Goo..... esse delendam

Benutzeravatar
tionov
Site Admin
Beiträge: 559
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von tionov » So 26. Jan 2025, 14:41

Ok, jetzt ist es klar. Habe gerade einen Bug geschrieben.

Dass in '.connection/hcon.connection' der String 'Path="here you must put in the complete path to the application"' stand, hat mich irritiert.

Woher kam der String?
Alles Gute,

tionov

Benutzeravatar
tionov
Site Admin
Beiträge: 559
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von tionov » So 26. Jan 2025, 14:48

Poly hat geschrieben:
So 26. Jan 2025, 14:30
Wie erstelle ich denn ein richtigen BugReport?
Sorry, aber ich habe nicht die Zeit, mich mit den vielen Details zu beschäftigen. Sqlite interessiert mich normalerweise auch nicht.

Registriere dich bei https://gambaswiki.org/bugtracker/ und schau mal da rein, da siehst du den Bug und kannst auch sehen, wie die geschrieben werden. Für den Fortgang in der Mailingliste 'Bugtracker' auf https://lists.gambas-basic.org/ registrieren.

Wichtig bei Bugs ist: Es muss so klar und einfach wie möglich sein und simpel nachvollziehbar. Am besten mit einem eindeutigen Projekt. Unnötige Zusatzinformationen vermeiden.
Alles Gute,

tionov

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » So 26. Jan 2025, 19:48

tionov hat geschrieben:
So 26. Jan 2025, 14:48

Sorry, aber ich habe nicht die Zeit, mich mit den vielen Details zu beschäftigen. Sqlite interessiert mich normalerweise auch nicht.
Danke, dass Du Dir dennoch die Zeit genommen hast.
tionov hat geschrieben:
So 26. Jan 2025, 14:48

Ok, jetzt ist es klar. Habe gerade einen Bug geschrieben.

Dass in '.connection/hcon.connection' der String 'Path="here you must put in the complete path to the application"' stand, hat mich irritiert.

Woher kam der String?
Zunächst einmal vielen Dank für den Bug-Report :)

Den String habe ich erstellt, um zu zeigen, wo der genaue Pfad zur Datenbank in diese Datei eingetragen werden muss.

Im Projektordner wird eine Ordern .connection angelegt und darin befindet sich die Konfigurations-Datei für diese Verbindung.
In meinem Fall hcon.connection.
Hier habe ich zur Demonstration diese Zeile eingetragen:

Code: Alles auswählen

Path="here you must put in the complete path to the application"
bei mir in der Datei zu Hause habe ich hingegen folgende Zeile eingetragen, damit die Datenbank erkannt wird:

Code: Alles auswählen

Path="/home/User/Databases/Datenbank_mit_IDE"
tionov hat geschrieben:
So 26. Jan 2025, 14:48

Unnötige Zusatzinformationen vermeiden.
Das wird schwierig :wink: , aber ich werde mich mit dem Bugtracker beschäftigen.

Vielen Dank noch einmal, dass Du Dir überhaupt die Zeit genommen hast auf meinen Beitrag zu reagieren.
Ceterum censeo Goo..... esse delendam

Benutzeravatar
tionov
Site Admin
Beiträge: 559
Registriert: So 18. Mai 2014, 23:40
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von tionov » Mo 27. Jan 2025, 11:08

Gerne, wir wollen ja alle, dass Gambas besser wird. Die db2 Komponenten sind neu und da ist es wichtig, dass Fehler gemeldet werden.

Wenn dich die Sache interessiert, dann trage dich mal in die Bugtracker Mailingliste ein und lese etwas mit. Die Entwicklung von Gambas zu beobachten ist ganz interessant.
Alles Gute,

tionov

Poly
Foriker
Beiträge: 73
Registriert: Fr 17. Apr 2020, 12:46
Kontaktdaten:

Re: gb.db2.sqlite3

Beitrag von Poly » Di 28. Jan 2025, 00:14

tionov hat geschrieben:
Mo 27. Jan 2025, 11:08
Gerne, wir wollen ja alle, dass Gambas besser wird.
Schön, dass Du es genauso siehst. Besser und vor allem bekannter/beliebter ;)
Ceterum censeo Goo..... esse delendam

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste