Connection VB6 => MySQL => récupération UNICODE => Caractere Chinois
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
30 août 2006 à 17:36
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
31 août 2006 à 08:51
Salut à tous.
Aller une petite question à la c.n...
Apres une recherche non satisfaisante sur VBFRANCE (et sur google)
(NB: D'ailleurs je ne vois pas comment mais je crois qu il faut améliorer le moteur de recherche, j'ai l'impression de ne jamais trouver ce que je cherche = > Mais la n'est pas le sujet)
Je suis sous W2K, VB6 SP6, MySQL 4.1.4
Je me connecte actuellement à ma base de données MySQL à l'aide du driver MySQL ODBC 3.51 Driver
Je développe actuellement la version d'un logiciel en CHINOIS.
Nous avons réussi à passer des caracteres Chinois au VB6 de base (composants de bases) à l'aide d'un soft à part (NJ Star communicator).
Nous avons aussi résussi à stoker ces même caracteres dans une table d'une base de données MYSQL en modifiant le DEFAUT CHARSET latin1 ... en <gras>DEFAUT CHARSET utf8</gras>.
Mais à présent le prochain stade est de ce connecter à cette base de données en lui précisant lors de sa connection que l'on va recuperer des champs suceptibles d'être en UTF8.
En effet depuis la modification du DEFAUT CHARSET la connection "plante" et donne l'erreur suivante.
Je pense qu'a present il doit manquer un parametre lors de la connection.
Ma question est la suivante: est ce quelqu'un connait la chaine de connection correspondante en ADO.(ou le parametre a ajouter) pour pouvoir contourner ce probleme.
Nous avons essayé d'ajouter le parametre CHARSET=UTF8; mais cela ne fonctionne pas.
Voici la chaine de connection actuelle:
"DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & SERV_DB & ";DATABASE=" & sNomBaseMySQL
Un petit coup de pouce serait le bienvenu
Merci d'avance
@+, Ju£i?n
PS: je vais aussi poster sur SQLFrance (bien entendu)
et ici çà à l'air pas trop mal, mais toujours rien pour VB
et pour finir, un bout de code trouvé ici, dénuméroté à ton attention
Private Sub afficher_Click()
Dim oCon As Connection ' Connexion vers la BD
Dim oRst As Recordset ' Ensemble de données d'une table
Dim strConnect As String ' Chaîne de connexion vers la BD
Dim strSql As String
' Insertion des paramètres dans la chaîne de connexion
strConnect = Replace (strConnect, "%server%", "localhost") ' Nom ou IP du serveur BD
strConnect = Replace(strConnect, "%port%", "3306") ' Port du serveur BD
strConnect = Replace (strConnect, "%database%", "College") ' Nom de la BD
strConnect = Replace(strConnect, "%userid%", "root") ' Login pour la BD
strConnect = Replace (strConnect, "%password%", "plouf") ' Mot de passe pour le login
Set oCon = New Connection
Call oCon.Open(strConnect)
' Initialisation d'une requête
strSql = "select civiliteAdh as Civilité, nomAdh as Nom, prenomAdh as Prenom, adresseAdh as Adresse, villeAdh as Ville, cpAdh as CodePostal, disciplineAdh as Discipline, niveauAdh as ceinture From adherants order by disciplineAdh , nomAdh"
Set oRst = New Recordset
' adOpenForwardOnly -> meilleur choix pour un parcours du recordset du début à la fin
' adCmdText -> on précise qu'il s'agit d'une requête
Call oRst.Open(strSql, oCon, adOpenForwardOnly, adLockReadOnly, adCmdText)
Do While Not oRst.EOF
' Output dans l'immediate window
Debug.Print oRst!College < ---l 'erreur
oRst.MoveNext
Loop
' Fermeture propre des connexions et destruction des objets
oRst.Close
Set oRst = Nothing
oCon.Close
Set conx = Nothing
End Sub
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 31 août 2006 à 08:51
Salut,
Merci d'avoir répondu
>2359 Renfield: Ce message d'erreur survient lorsque j'essaie d'ouvrir un Recordset de selection sur une table (en adOpenKeyset, adLockOptimistic)
Et en passant en parametre la connetion active (ouverte auparavant avec la chaine de connection: "DRIVER ={MySQL ODBC 3.51 Driver};SERVER= " & SERV_DB & ";DATABASE=" & sNomBaseMySQL
Avant de partir hier soir j ai fait une modifcation dans My.ini j'ai ajouté
[mysql]
default-character-set =utf8
Plus d'erreur ce matin apres un redémarrage mais plus les caractere chinois non plus.
> PCPT: Merci pour le code je vais le tester. Merci pour le lien (bien que je suis souvent sur ce site depuis hier, je n'avais pas vu cette page.)
Si quelqu un d'autre a une idée .
Merci d'avance.