AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)

Ein Thema von s.h.a.r.k · begonnen am 19. Sep 2006 · letzter Beitrag vom 5. Mai 2011
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)

  Alt 19. Sep 2006, 12:03
Datenbank: SQLite • Version: 3.3.7 • Zugriff über: libsql (v0.64)
Hallo,

und zwar habe ich das folgende Problem, dass wenn ich ein Query mache und einen Text in die Datenbank eintrage, welcher Umlaute, d.h. ü, ö, ä enthält, so wird nicht genau dieses Zeichen dort gespeichert, sondern zwei andere Zeichen, die dem Buchstaben ö, ü, ä entsprechen. Das will ich aber nicht haben! Ich will Umlaute und nicht irgendetwas anderes gepspeichert haben.

In der Komponenten libsql gibt es die Einstellunge Unicode : Boolean - wenn ich es auf True setze, dann wird scheinbar im Unicode-Format gespeichert und wenn ich es auf False setze im UTF-8-Format. Nur werden die Umlaute bei beiden Einstellungen nicht richtig gespeichert -> komische Zeichen...

Ich hoffe ihr könnt mir weiterhelfen - ich bin am verzweifeln. So schwer kann das doch nicht sein, oder?!

mfg shark
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 19. Sep 2006, 12:07
Was für einen Zeichensatz? Welche Komponenetn (sind diese Unicodefähig)?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 19. Sep 2006, 12:15
Komponenten? Ich nutze halt SQLite, davon die DLL für die Embedded-Datenbank (Version 3.3.7). Den Zugriff nehme ich mit libsql vor (Version 0.64). libsql stellt mir die Klasse TLiteDB zur Verfügung, über die ich die DLL einbinden, Querys versenden und sonstige Sachen machen kann. Dort kann ich auch die oben genannte Einstellnugen "Unicode : Boolean" vornehmen (True -> Unicode; False -> UTF-8), nur ändert sich durch diese Einstellungen nichts.

Einen String speichere ich so:
db.Query('INSERT INTO testtable (testtext) VALUES (''öüäasd'');') Nur es wird leider kein Umlaut so gespeichert wie es sein sollte...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 19. Sep 2006, 12:20
Ich vermutete das es im Programm falsch angezeigt werden würde und meinte die Anzeigekomponenten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 19. Sep 2006, 13:48
Das Problem hat sich gerade gelöst. Weiß zwar nicht wirklich warum, aber auf einmal hat es geklappt...
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
zaphod

Registriert seit: 6. Sep 2006
6 Beiträge
 
#6

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 20. Sep 2006, 10:54
Hallo,

soweit ich weiß arbeitet sqlite intern im UTF-8 Format. An deiner Stelle würd ich mal probieren, Unicode auf False zu setzen und alle Strings die rein bzw. rausgehen ins UTF-8 Format bzw. zurück ins Ansi Format zu konvertieren.

D.h. aus
db.Query('INSERT INTO testtable (testtext) VALUES (''öüäasd'');') wird:
db.Query(AnsiToUTF8('INSERT INTO testtable (testtext) VALUES (''öüäasd'');')) Das Ergebnis eines SELECT statements muss dann mit UTF8ToAnsi() zurückkonvertiert werden.

Gruß
zaphod
  Mit Zitat antworten Zitat
zaphod

Registriert seit: 6. Sep 2006
6 Beiträge
 
#7

Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche

  Alt 20. Sep 2006, 11:01
Zitat von s.h.a.r.k:
Das Problem hat sich gerade gelöst. Weiß zwar nicht wirklich warum, aber auf einmal hat es geklappt...
Ja, letztendlich ist es wahrscheinlich wurscht, wenn man die sqlite3 DB mit keiner anderen Applikation bearbeitet. Wenn man nur Ansi Code reinschreibt, müsste man auch nur Ansi Code rausbekommen und sqlite dürfte sich nicht stören ob ein 'ä' wirklich als UTF-8 'ä' in der Datenbank steht...

Gruß
zaphod
  Mit Zitat antworten Zitat
Miggi

Registriert seit: 8. Jun 2004
Ort: Seelbach
7 Beiträge
 
Delphi XE Professional
 
#8

AW: SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)

  Alt 5. Mai 2011, 09:57
Vielen Dank an Zapod,

ich stand vor dem gleichen Problem mit den "umgewandelten" Zeichen.. das passiert aber bei allen Zeichen des erweiterten Zeichensatzes ® Ø usw.
selbst der wirklich klasse "SQLite Administrator" (kann ich jedem nur empfehlen der mit SQLITE3 Datenbanken zu tun hat und ist kostenlos!),
hat das nicht korrekt angezeigt...

http://sqliteadmin.orbmu2k.de/


nun konvertiere ich beim Laden mittels Callback-Routine einfach das Datenfeld vor Anzeige zurück
mittels UTF8ToAnsi() und es klappt..


Super!
Michael
HUMMEL - gut - schnell - preiswert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz