Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Umlaute in MySQL Query, utf8 (https://www.delphipraxis.net/171537-umlaute-mysql-query-utf8.html)

CTest 11. Nov 2012 14:16

Datenbank: MySQL • Version: 5.5.16 • Zugriff über: libmysql.dll

Umlaute in MySQL Query, utf8
 
Hallo,

Ich habe mir die mysql.pas wie hier beschrieben, geladen und komme nach der Anleitung ganz gut damit zurecht. Ich hänge allerdings bei SQL-Abfragen, die Umlaute enthalten.

In der Datenbank ist als Kollation in Tabellen und VARCHAR-Feldern utf8_unicode_ci eingestellt.
Ergebnisse aus Abfragen kann ich mit Utf8ToAnsi() konvertieren.

mit UTF8Encode() komm ich zwar wieder zu den gleichen Zeichen, wie von den Ergebnissen der Abfragen, die Query schlägt aber fehl.

Habs schon probiert mit
Delphi-Quellcode:
mysql_set_character_set(FMySQL.PConnection, PChar('utf8'));
, das Charset (der Verbindung?) einzustellen, aber hilft nicht.

Was kann ich tun? möglichst ohne die Zeichensätze in der Datenbank ändern zu müssen.

Grüße


edit: hat sich erledigt, habs grad zufällig hingekriegt, mit EscapeString() aus der mysql.pas gehts.

CTest 28. Nov 2012 23:12

AW: Umlaute in MySQL Query, utf8
 
Hallo,

Bin jetzt soweit fertig und wollte mich mit dem Server von der Homepage auf Bplaced.net connecten, das klappt aber nicht, was muss ich da statt localhost als Host angeben? MySQL-Server auf Bplaced heißt auch localhost.

Delphi-Quellcode:
mysql_real_connect(PConnection, PChar('abc.bplaced.net'), ...
mysql_real_connect(PConnection, PChar('def.bplaced.net.localhost'), ...
klappt alles nicht :cry:

RWarnecke 29. Nov 2012 06:20

AW: Umlaute in MySQL Query, utf8
 
Die MySQL-Server bei dem größten Teil der Anbieter sind von außen, also per Remote, nicht erreichbar. Du kannst nur auf die Daten per Tunnel zugreifen. Bei den kostenpflichtigen UniDAC-Komponenten von Devart ist zum Beispiel eine solche Tunnel.php dabei. Da mit kannst Du dann ganz normal eine Query benutzen und die Connectionkomponente greift dann auf die Tunnel.php zu und holt sich die Daten aus der lokalen MySQL-Datenbank.

Soweit ich weiß gibt es auch ein Projekt hier in der DP, die so einen Tunnel aufbaut. Musst mal unter den Projekten mal danach suchen.

DonManfred 29. Nov 2012 06:29

AW: Umlaute in MySQL Query, utf8
 
Wenn der MySQL-Dienst bei bplaced mit aktivem skip_networking=1 (oder true) läuft dann kannst Du von einem "fremden PC" nicht darauf zugreifen. Ich nehme an das ist hier der Fall (kenne bplaced nicht)

Lösung wäre es eine Schnittstelle zu programmieren mit php welches Anfragen von Dir annimmt und dann über die localhost-Verbindung zu MySQL weiterreicht und evtl. Ergebnisse an Dich mittels echo zurückliefert.

In delphi wär das dann ein http-Aufruf mittels Indy (senden von Daten) bzw eine Auswertung und interpretierung der Antwort (empfangen von Daten).

Das Thema sicherheit solltest du jedoch auch beachten; Du willst ja nicht, das "irgendwer" über dein PHP-Script an Informationen aus deiner Datenbank kommt. Oder noch schwerwiegender; Daten in deine DB schreiben/löschen kann.

jayjay77 7. Dez 2015 15:07

AW: Umlaute in MySQL Query, utf8
 
@CTest

kannst du uns bitte verraten wie du das gemacht hast?

Zitat:

edit: hat sich erledigt, habs grad zufällig hingekriegt, mit EscapeString() aus der mysql.pas gehts.
Danke und Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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