2016-01-11 1 views
0

J'ai été bloqué dans ce scénario.Prise en charge du connecteur ODBC pour utf8mb4 dans MYSQL

Mon application est en C++ qui se connecte à la base de données MySQL 5.5.34 via MySQL odbc connecteur v5.2 Unicode Driver.

Mes tables utilisaient le jeu de caractères et les propriétés de classement 'utf-8'. Pour insérer des caractères supplémentaires unicode, je l'ai changé par

Ma table a été initialement créé:

CREATE TABLE mytable (SAMPLECOLUMN text) ENGINE=InnoDB DEFAULTCHARSET=utf8; 

changed to, 
ALTER TABLE mytable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

Après cela, je peux directement (et non par mon application) insérer les caractères supplémentaires dans la tenue de la colonne ' TEXT 'type de données.

Le connecteur odbc se bloque lorsqu'il rencontre des caractères supplémentaires.

Voici certaines de mes configurations my.ini.

[mysql] 
default-character-set=utf8 

[mysqld] 
character-set-server=utf8 
default-storage-engine=INNODB 

La requête que je suis en train d'insérer:

INSERT INTO mytable (SAMPLECOLUMN) VALUES ("乕乭乺丕"); 

des pointeurs/têtes monteraient grand.

Également, essayé en utilisant v5.3 Unicode MYSQL odbc connecteur et v1.0.5 MariaDB ODBC connecteur, toujours la même chose.

Merci d'avance.

+0

trouvé celui-ci dans les forums de MySQL un autre utilisateur avec le même problème http://bugs.mysql.com/bug.php?id=67297 – D3XT3R

Répondre

2

La solution consiste à utiliser le connecteur MariaDB odbc pour se connecter à la base de données MySQL. https://mariadb.com/my_portal/download/connector-odbc/1.0

Assurez-vous que vous définissez cette ODBC dsn et de garder caractères de connexion vide

MariaDB connector

À partir v5.2 de MyODBC, SET NAMES a été dépréciée. D'où la nécessité d'utiliser le connecteur MariaDB. Espérons que le problème de caractère supplémentaire est corrigé dans le connecteur ODBC MySQL.

0

Vous devez émettre SET NAMES utf8mb4 après vous être connecté à MySQL. Sinon, la connexion ne peut pas gérer les caractères de 4 octets.

Si cela ne suffit pas, poursuivez SQLExecDirectW pour voir s'il y a une mise à jour.

+0

connecteur MySQL ne me permet pas de 'SET NAMES utf8mb4' par' initstmt 'paramètre dans ODBC – D3XT3R

+0

On dirait que 5.3.4 est disponible: http://dev.mysql.com/downloads/connector/odbc/ –