AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Thema durchsuchen
Ansicht
Themen-Optionen

ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

Ein Thema von Codehunter · begonnen am 17. Mär 2018 · letzter Beitrag vom 22. Mär 2018
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#1

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 12:13
Hallo Egon,

ich bitte die ein oder andere Formulierung mir nachzusehen. Zu meiner Entschuldigung verweise ich auf die Uhrzeit des Post und die 15 Stunden Coden davor

nein Zeos hat keine Encodierungs-Probleme mehr. Schaust du dir die Felder und deren Typen an, erkennt man, daß ftBytes als TField.DataType festgestellt wurde. Das ist natürlich nicht richtig. Es scheint dir aber auch nicht aufgefallen zu sein.
TField.AsString macht dann erst das/den/die(was ist richtig?)
Zitat von Codehunter:
"Datengrütz"
ZEOS ist relativ neu für mich, ich war bzw. bin hauptsächlich mit UniDAC unterwegs. Das kommt aber beim betreffenden Projekt nicht in Frage. Daher der Versuch mit ZEOS. Die besagte Tabelle ist ja bei allen 10er MariaDB so vorhanden und IMHO auch bei neueren MySQL. Daher sollte das Problem einfach nachstellbar sein. Mit HeidiSQL sehe ich "root" und andere Benutzernamen in der Spalte
Code:
mysql.user.User
aber wenn ich mit ZEOS auslese, erhalte ich chinesisch aussehende Zeichenketten und Nuller: '潲瑯#0#0#0#0#0#0#0#0#0#0#0'

Grüße
Cody

PS: Ich bin mit der zeosdbo-7.2.3-rc unterwegs.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (18. Mär 2018 um 12:16 Uhr)
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 13:41
Schon mal Probiert wenn der Zielstring-Variable ein Ansistring ist ?
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#3

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 13:51
Schon mal Probiert wenn der Zielstring-Variable ein Ansistring ist ?
Ja das war sogar mein erster Gedanke. Der Unterschied ist dabei lediglich, dass anstelle der chinesischen Zeichen dann "?" auftauchen, wieder gefolgt von vielen Nullern.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#4

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 14:30
Da gibt es auch noch andere Probleme. Bei folgendem Query erhalte ich in HeidiSQL eine Liste der Benutzernamen:
Code:
SELECT CONVERT(CAST(User as BINARY) USING utf8) FROM `mysql`.`user`;
in ZEOS dagegen erhalte ich den Fehler "Das Feld User wurde nicht gefunden."
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#5

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 14:46
Haaaabs rausgefunden

Das Problem scheint darin begründet zu sein, dass die Spalte genauso heißt wie die Tabelle (mysql.user.User). Gibt man das explizit an, klappt es nicht nur mit dem Cast sondern auch mit dem Auslesen als String im Delphi:
Code:
SELECT `user`.`User` COLLATE UTF8_GENERAL_CI AS `User` FROM `mysql`.`user`;
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 16:43
Wir können nicht täglich einen RC erstellen nur weil ein Käfer weniger durch die Relais wandert.

Wie gesagt der Fix ist im SVN erhältlich und nicht in der 7.2.3-rc.

Ich denke in ca. 2-3 Wochen machen wir den Deckel mit 7.2 zu und lösen meine Uralt 7.1.4 ab. 7.3 ist ja auch schon vor mehr als 3 Jahren unter meiner Fuchtel entstanden(Native OleDB access da die ADO Zwichenschicht total lahm ist und Native ODBC + weitere Features)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#7

AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus

  Alt 18. Mär 2018, 18:02
Wie gesagt der Fix ist im SVN erhältlich und nicht in der 7.2.3-rc.
So genau ging das eigentlich gar nicht hervor. Wie gesagt ich bin kein ZEOS-Urgestein. Daher hab ich das nicht gleich realisiert dass der Fix NACH der 7.2.3-rc kam. Es sind mir noch ein paar andere Nicklichkeiten aufgefallen (z.B. ENUMs werden zu Boolean gecastet und dann von .AsString immer als "Wahr" ausgelesen statt als CHAR). Da warte ich jetzt einfach mal die Final ab. Gibt noch genug andere Baustellen die ich bis dahin beackern kann
7.3 ist ja auch schon vor mehr als 3 Jahren unter meiner Fuchtel entstanden(Native OleDB access da die ADO Zwichenschicht total lahm ist und Native ODBC + weitere Features)
Das klingt sehr interessant. Ich erinnere mich da mit Grausen an die Kombination AnySQL Maestro + Sybase DB über ADO. Allein das Öffnen eines Wawi-Schema führte zu 12 Minuten Eieruhring Ich bin da an einem Projekt dran, da könnte mir die 7.3 sehr gelegen kommen. Gibt es da schon einen Zeithorizont?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (18. Mär 2018 um 18:07 Uhr)
  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 07:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz