SQLite macOS 5.60x64 kann DB nicht öffnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Dieter
Beiträge: 22
Registriert: 14.08.2014 14:32
Computerausstattung: MacMini (2018 (2020), I7 3.2GHz, 32GB), OSX 10.15.5, PB 5.61 x64 - VmWare-Fusion: Win10 Home Premium, XP Professional
History: ZX81 - ZX Spectrum - Apple II - Atari ST - PC (MS-DOS 3.2 ... WIN 10) - Linux/UNIX - Mac

SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von Dieter »

Ich habe ein kleines Problem mit SQLite, allerdings nicht generell.

Ein kleine Anwendung von mir mit gerade einmal vier Tabellen läuft aus der IDE heraus ohne Probleme.
Erstelle ich nun ein Executable wird dies zwar anstandslos gemacht, jedoch kann ich mit dieser generierten
APP dieselbe SQLite-DB nicht öffnen. Leider erhalte ich von DatabaseError() keine Information.

Selbst unter Windows 10 (selber Quellcode, selbe DB) klappt das sowohl aus der IDE als auch mit der
eigentlichen EXE-Datei.

Andere PB-Anwendungen funktionieren allerdings!?
MacMini (2020, I7 3.2GHz, 32GB), OSX 10.15.x, PB 5.72 LTS x64 - VmWare-Fusion: Win7 Home Premium, XP Professional, Ubuntu 14.04 - ZX81 - Apple II - Atari ST
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von GPI »

in Zeile 214 ist ein Doppelpunkt zu viel!

Ich will sagen, das ohne einen Codeschnippsel keiner helfen kann. Das einzige was mir einfällt ist die Debug-Falle. z.b.:

Code: Alles auswählen

Debug Init()
in der IDE mit debugger wird init() aufgerufen, ohne debugger wird init() NICHT aufgerufen, weil der Debugbefehl rückstandslos entfernt wird.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von Bisonte »

GPI sagt es... Source um zu helfen ist notwendig.

Aber wenn ich im dunkeln stocher.... tippe ich auf Pfade. Getreu dem Motto : Es wird das DB File einfach nicht gefunden.
Es gibt viele Gründe, unter denen der aktuelle Pfad in einem Source aus der IDE anders ist, als der aktuelle Pfad in einer
kompilierten EXE.

Windows ist da nicht ganz so pingelig, vielleicht aber MacOS. Vielleicht hilft ja schon ein einfaches

Code: Alles auswählen

SetProgramDirectory(GetPathPart(ProgramFileName()))
Ich kann mir vorstellen, daß du einfach annimmst, das das DB File im gleichen Verzeichnis liegt, wie das Hauptprogramm.
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

Re: SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von NeoChris »

GPI hat geschrieben:in Zeile 214 ist ein Doppelpunkt zu viel!
Kann ich bestätigen.
Ausserdem solltest du in Zeile 7521 nicht mehr CreateGadgetList verwenden weils nicht mehr gebraucht wird!
Und warum benutzt du Goto in Events? Nimm doch ne Procedure oder so.
Define in Procedure ist auch falsch. Dafür gibt es doch Protected. Siehe Zeile 3, 4, 5, 26, 28, 131, 132 und 255.

scnr
Dieter
Beiträge: 22
Registriert: 14.08.2014 14:32
Computerausstattung: MacMini (2018 (2020), I7 3.2GHz, 32GB), OSX 10.15.5, PB 5.61 x64 - VmWare-Fusion: Win10 Home Premium, XP Professional
History: ZX81 - ZX Spectrum - Apple II - Atari ST - PC (MS-DOS 3.2 ... WIN 10) - Linux/UNIX - Mac

Re: SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von Dieter »

In Zeile 214 ist überhaupt kein Doppelpunkt :D

Nachdem ich zwischenzeitlich die DB nochmals frisch aus der APP angelegt habe, konnte ich perfekt zugreifen. Da verrückte ist aber, dass ich sowohl aus der APP als
auch aus der IDE Sätze anlegen konnte. Jedoch sah ich in der APP immer nur die aus der APP angelegten Sätze, in der IDE immer alle.
Aber man muss nicht alles verstehen ...

Das war der Schlüssel:
Ich kann mir vorstellen, daß du einfach annimmst, das das DB File im gleichen Verzeichnis liegt, wie das Hauptprogramm.
Natürlich bin ich davon ausgegangen.


Aus dieser Info habe ich mir folgende Lösung bebastelt:

Code: Alles auswählen

Procedure.s MyGetCurrentDirectory()
  Protected dir$
   If IsMac()
    If FindString(ProgramFilename(), "PureBasic.0", #PB_String_NoCase) 
      dir$=GetCurrentDirectory()
    Else
      dir$=GetPathPart(StringField(ProgramFilename(), 1, "/Contents/MacOS/"))
    EndIf
  Else
    dir$=GetCurrentDirectory()
  EndIf 
  ProcedureReturn dir$
EndProcedure
Danke nochmal!
MacMini (2020, I7 3.2GHz, 32GB), OSX 10.15.x, PB 5.72 LTS x64 - VmWare-Fusion: Win7 Home Premium, XP Professional, Ubuntu 14.04 - ZX81 - Apple II - Atari ST
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: SQLite macOS 5.60x64 kann DB nicht öffnen

Beitrag von mk-soft »

Kann aber auch PureBasic.1, PureBasic.2, etc heissen...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten