PBOSL - SQLite3
PBOSL - SQLite3
Hallo,
habe kürzlich die neueste Version von PBOSL heruntergeladen. Danach habe ich festgestellt, dass sich ein Fehler eingestellt hat.
In meiner Anwendung wird ein String aus einer SQLite-Datenbank in einem Editor-Gadget angezeigt. Jetzt stoppt die Ausgabe bei einem "ü".
Nachdem ich wieder die alte SQLite-Userlib installiet habe, läuft alles wieder normal.
habe kürzlich die neueste Version von PBOSL heruntergeladen. Danach habe ich festgestellt, dass sich ein Fehler eingestellt hat.
In meiner Anwendung wird ein String aus einer SQLite-Datenbank in einem Editor-Gadget angezeigt. Jetzt stoppt die Ausgabe bei einem "ü".
Nachdem ich wieder die alte SQLite-Userlib installiet habe, läuft alles wieder normal.
Re: PBOSL - SQLite3
<Vermutung>drahneir hat geschrieben:Jetzt stoppt die Ausgabe bei einem "ü".
vielleicht ein Fehler im Zusammenhang mit Unicode.
</Vermutung>
Ich empfehle Dir, auf das SQLite-Include von Thomas/MLK
umzusteigen, da ich die PBOSL-Version nicht mehr weiter
entwickeln werde.
Grüße ... Kiffi
a²+b²=mc²
- 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
SQLite von PBOSL und auch die Include nutzen seit geraumer Zeit UTF-8, so
wie es für SQLite vorgesehen ist. In älteren Versionen wurde dies nicht be-
rücksichtigt, da: PB vor 4 kein UTF-8 konnte. Die Umstellung erforlgte aber
leider nicht unmittelbar nach erscheinen von PB4. Alte Datenbanken sind
nicht ohne Konvertierung zu nutzen. Bei Neu erstellten sollte es keine
Probleme geben.
Zwecks Konvertierung, ab hier mal lesen:
http://www.purebasic.fr/english/viewtop ... 784#196784
Habs mal verschoben. Fragen zu PBOSL hier:
http://www.purebasic.fr/german/viewtopic.php?t=5062
oder in Anfänger/Allgemein einordnen, aber nicht als neues Feedback
wie es für SQLite vorgesehen ist. In älteren Versionen wurde dies nicht be-
rücksichtigt, da: PB vor 4 kein UTF-8 konnte. Die Umstellung erforlgte aber
leider nicht unmittelbar nach erscheinen von PB4. Alte Datenbanken sind
nicht ohne Konvertierung zu nutzen. Bei Neu erstellten sollte es keine
Probleme geben.
Zwecks Konvertierung, ab hier mal lesen:
http://www.purebasic.fr/english/viewtop ... 784#196784
Habs mal verschoben. Fragen zu PBOSL hier:
http://www.purebasic.fr/german/viewtopic.php?t=5062
oder in Anfänger/Allgemein einordnen, aber nicht als neues Feedback

Zuletzt geändert von ts-soft am 26.06.2007 16:49, insgesamt 1-mal geändert.
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.

- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: PBOSL - SQLite3
Ich hatte das gleiche Problem. Es tritt bei beiden SQLite-Include bzw. Lib auf und zwar wenn man eine "alte" (=ASCII) Datenbank verwendet. Wenn man die Datenbank neu erstellt oder konvertiert nach Unicode, da funktioniert es.drahneir hat geschrieben:... Jetzt stoppt die Ausgabe bei einem "ü".
Nachdem ich wieder die alte SQLite-Userlib installiet habe, läuft alles wieder normal. ...
Meine Datenbank ist UTF-8 codiert.
Ich habe es noch mal ausprobiert: mit der alten SQLite3 Lib läuft es, verwende ich die vom 20.02.2007, dann bricht die Ausgabe bei "ü" ab.
Da meine Anwendung auf die Datenbank aufsetzt und demzufolge sehr viele SQLite3-Befehle im Code stehen, wäre es ein ziemlich großer Aufwand, diese für eine andere Lib bzw. Include abzuändern. Ich werde also die alte Lib weiterbenutzen.
Vielen Dank für die Hilfe.
Ich habe es noch mal ausprobiert: mit der alten SQLite3 Lib läuft es, verwende ich die vom 20.02.2007, dann bricht die Ausgabe bei "ü" ab.
Da meine Anwendung auf die Datenbank aufsetzt und demzufolge sehr viele SQLite3-Befehle im Code stehen, wäre es ein ziemlich großer Aufwand, diese für eine andere Lib bzw. Include abzuändern. Ich werde also die alte Lib weiterbenutzen.
Vielen Dank für die Hilfe.
- 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
>> Ich werde also die alte Lib weiterbenutzen.
Sollte die beste Lösung sein, andere Änderungen gabs wohl nicht.
Sollte die beste Lösung sein, andere Änderungen gabs wohl nicht.
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.

Eins verstehe ich bei diesem Problem nicht.
Ich habe mir den Code von SQLite3 mal angesehen, in den Prozeduren, die für das Holen von Daten aus der Datenbank zuständig sind, steht folgender Code:
Wenn ich #PB_Any und #PB_UTF8 da herausnehme oder #PB_Ascii einsetze, dann werden die Umlaute angezeigt.
Wenn ich meine Datenbank mit 'PRAGMA encoding' abfrage, erhalte ich den Rückgabewert 'UTF-8'. Also sollte beides zusammen doch funktionieren; tut es aber nicht.
Ich habe mir den Code von SQLite3 mal angesehen, in den Prozeduren, die für das Holen von Daten aus der Datenbank zuständig sind, steht folgender Code:
Code: Alles auswählen
PokeS(@sSQLQuery_U, sSQLQuery, #PB_Any, #PB_UTF8)
Wenn ich meine Datenbank mit 'PRAGMA encoding' abfrage, erhalte ich den Rückgabewert 'UTF-8'. Also sollte beides zusammen doch funktionieren; tut es aber nicht.
- 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
Darum gehts doch, UTF-8 ist das korrekte Format für SQLite, nicht ASCII,
bzw. ANSI. Alle Umlaute liegen aber in UTF-8 und ANSI anders, deswegen
gehts nicht mehr. Wenn die DB neu erstellt wird, gibts diesen Fehler nicht,
da ja nicht nur UTF-8 gepoked wird, sondern auch gepeeked
bzw. ANSI. Alle Umlaute liegen aber in UTF-8 und ANSI anders, deswegen
gehts nicht mehr. Wenn die DB neu erstellt wird, gibts diesen Fehler nicht,
da ja nicht nur UTF-8 gepoked wird, sondern auch gepeeked

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.

Habe jetzt die Datenbank konvertiert, d. h. alle Daten ausgelesen und UTF-8-kodiert wieder reingeschrieben. Hat aber nichts gebracht, im Gegenteil.
Wenn ich mir die Daten mit SQLiteExpert ansehe, dann ist ein String, der mit einem Umlaut anfängt, jetzt leer. "Österreich" ist also überhaupt nicht da, "Weißrussland" erscheint als "Wei".
Woran kann das denn nun liegen?
Wenn ich mir die Daten mit SQLiteExpert ansehe, dann ist ein String, der mit einem Umlaut anfängt, jetzt leer. "Österreich" ist also überhaupt nicht da, "Weißrussland" erscheint als "Wei".
Woran kann das denn nun liegen?
probier's mal hiermit (ungeprüft): http://www.purebasic.fr/english/viewtop ... 820#205820drahneir hat geschrieben:Habe jetzt die Datenbank konvertiert, d. h. alle Daten ausgelesen und UTF-8-kodiert wieder reingeschrieben.
Grüße ... Kiffi
a²+b²=mc²