Discussion de l'article "Comment accéder à la base de données MySQL à partir de MQL5 (MQL4)" - page 10
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour, il semble que MySQL refuse la connexion pour l'utilisateur ODBC sur localhost.
Vous pouvez essayer de consulter StackOverflow : http://stackoverflow.com/questions/23950722/how-to-overcome-error-1045-28000-access-denied-for-user- odbclocalhost-u ;
Bonjour Eugeniy Lugovoy.
J'ai utilisé MQLMySQL pour mettre en œuvre les opérations courantes de requête, d'insertion, de mise à jour et de suppression, mais il y a un problème, je ne peux pas insérer le chinois, la requête en chinois est également brouillée, je voudrais vous demander si le processus d'emballage du middleware a défini l'encodage ? J'aimerais savoir si le processus d'emballage des logiciels intermédiaires a défini le code ? Le phénomène est le suivant :
DROP TABLE IF EXISTS `tb_test_pat` ;
CREATE TABLE `tb_test_pat` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `symbol` varchitecture
`symbol` varchar(255) NOT NULL, `start_time` datetime, `tb_test_pat` ; CREATE TABLE
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL, `trend` int(255)
`trend` int(255), `trend` int(10) NOT NULL, `points` int(10)
`points` int(10) unsigned zerofill NOT NULL, `comments` text CHARacteristic
`comments` text CHARACTER SET utf8,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
Échec de l'insertion du chinois
Erreur : Query was empty query : INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1, 'EURUSD ','2014.12.16 13:00 ','2014.12.17 20:00',8,'Test 12')
Insertion en anglais réussie
Succeeded : INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20 :00',8,'abc')
À quoi cela sert-il ?
Bonjour Eugeniy Lugovoy.
J'ai utilisé MQLMySQL pour mettre en œuvre les opérations courantes de requête, d'insertion, de mise à jour et de suppression, mais il y a un problème, je ne peux pas insérer le chinois, la requête en chinois est également brouillée, je voudrais vous demander si le processus d'emballage du middleware a défini l'encodage ? J'aimerais savoir si le processus d'emballage des logiciels intermédiaires a défini le code ? Le phénomène est le suivant :
DROP TABLE IF EXISTS `tb_test_pat` ;
CREATE TABLE `tb_test_pat` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `symbol` varchitecture
`symbol` varchar(255) NOT NULL, `start_time` datetime, `tb_test_pat` ; CREATE TABLE
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL, `trend` int(255)
`trend` int(255), `trend` int(10) NOT NULL, `points` int(10)
`points` int(10) unsigned zerofill NOT NULL, `comments` text CHARacteristic
`comments` text CHARACTER SET utf8,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
Échec de l'insertion du chinois
Erreur : Query was empty query : INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00 ','2014.12.17 20:00',8,'Test 12')
Insertion en anglais réussie
Succeeded : INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20 :00',8,'abc')
À quoi cela sert-il ?
Vous pouvez essayer d'exécuter la commande suivante après la connexion à MySQL.
SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'
Il est possible que certains de ces paramètres ne soient pas définis en UTF.
Une autre solution consiste à exécuter les commandes suivantes une par une après la connexion.
SET NAMES 'utf8' (nom)
SET CHARACTER SET 'utf8' (ensemble de caractères)
SET SESSION collation_connection = 'utf8_general_ci'
Une autre solution consiste à exécuter les commandes suivantes une par une après la connexion.
SET NAMES 'utf8' (nom)
SET CHARACTER SET 'utf8' (ensemble de caractères)
SET SESSION collation_connection = 'utf8_general_ci'
Cela ne fonctionne toujours pas, mais j'ai trouvé le problème
bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)
{
...
char Query[16384] ;
sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery) ; // Lors de l'exécution de cette ligne, le chinois est rencontré, et Query devient une chaîne vide résultant en un message d'erreur : Error : Query was empty query : UPDATE tb_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat test_pat SET comments='Chinese'
Pouvez-vous m'aider à résoudre ce problème ? Je vous remercie de votre aide et vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées. Je suis en 64 bit
Cela ne fonctionne toujours pas, mais j'ai trouvé le problème
bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)
{
...
char Query[16384] ;
sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery) ; // Lors de l'exécution de cette ligne, le chinois a été rencontré, et Query est devenu une chaîne vide, ce qui a entraîné un message d'erreur : Error : Query was empty query : UPDATE tb_test_pat SET comments='Chinese'. test_pat SET comments='Chinese'
Pouvez-vous m'aider à résoudre ce problème ? Je vous remercie de votre aide et vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées. Je suis en 64 bit
De plus, UTF-8 ne peut pas être utilisé dans ce cas, mais seulement UTF-16 !