![]() |
Datenbank: MariaDB • Version: 10 • Zugriff über: ZEOS
ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Hallo!
Wenn ich mittels ZEOS den Query
Code:
an eine MariaDB absetze, bekomme ich im Ergebnis nur "Datengrütz" für die Spalten "User" und "Host". Wenn ich mit HeidiSQL schaue, dann definiert MariaDB diese beiden Spalten mit der Collation "utf8_bin". Ich vermute, dass bei ZEOS die interne Konvertierung nicht klappt, wenn ich versuche mit FieldByName().AsString darauf zuzugreifen. Wie lese ich solche Spalten richtig aus? Im Netz finde ich dazu nicht wirklich was außer dem Hinweis, man möge doch "einfach" die Collation der Spalten ändern auf "utf8_general_ci". Was natürlich seeeeehr hilfreich ist bei DBMS-internen Tabellen :evil:
SELECT * FROM `mysql`.`user`;
Grüße Cody |
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Hallo Cody!
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:
Zitat:
Patch done R4383 /testing-7.2 (SVN) p.s. dafür gibt es das Ticket-System: ![]() |
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
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 :pale: Zitat:
Code:
aber wenn ich mit ZEOS auslese, erhalte ich chinesisch aussehende Zeichenketten und Nuller:
mysql.user.User
Delphi-Quellcode:
'潲瑯#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. |
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Schon mal Probiert wenn der Zielstring-Variable ein Ansistring ist ?
|
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Zitat:
|
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Da gibt es auch noch andere Probleme. Bei folgendem Query erhalte ich in HeidiSQL eine Liste der Benutzernamen:
Code:
in ZEOS dagegen erhalte ich den Fehler "Das Feld User wurde nicht gefunden."
SELECT CONVERT(CAST(User as BINARY) USING utf8) FROM `mysql`.`user`;
|
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Haaaabs rausgefunden :cyclops:
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`;
|
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
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) |
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Zitat:
Zitat:
|
AW: ZEOS ZQuery liest Spalte mit Collation utf8_bin nicht richtig aus
Hi Cody,
Zitat:
7.2-stable wird Jan dieses WE machen wollen: ![]() Wegen der 7.3 + Zeithorizont. Nicht wirklich, schön wäre noch diesen Sommer. Soll heißen es wäre schön daß mal so einige damit loslegen, damit mehr Tests/Reports der Benutzer bekommen. Hinterher kritisieren kann jeder... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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