Message de rapport:
 

WinDev - MySQL

Sujet: WinDev - MySQL
par R&B sur 20/10/2010 14:36:03

Bonjour,

Afin d'alimenter une base MySQL, nous produisons un fichier texte que nous traitions avec HImporteTexte sur la connexion MySQL jusqu'à ce que nous nous apercevions qu'il s'agissait d'une séquence de INSERT INTO passée à MysqlLib.dll.


Ma question est donc simple : comment faire lancer via WinDev un LOAD DATA INFILE à SQL et vraiment avoir un import rapide ?

Un hexecuteRequeteSQL va être parsée par le moteur hyperfile, je souhaite directement interférer dans la console, je suis sur le serveur.

Merci de confirmer ma solution actuellement envisagée :
un batch dos qui lance mysql + login + connection à la DB et lance un script .sql qui contient le LOAD DATA infile.

Ainsi windev execute le batch (LanceAppliAssociée) après avoir généré le .SQL qui est un fichier texte de la commande SQL.

Je l'ai pratiqué, il y a quelque temps en console, il me restera à régler les problème de droit et path.

exemple :
mysql.bat
mysql -hlocalhost -u<utilisateur> -p<pass> < mysql.sql

le batch se connecte au serveur mysqld pour l'utilisateur / pass

mysql.txt
CONNECT %1;
LOAD DATA INFILE '%2' INTO TABLE %3 FIELDS TERMINATED BY ';' ENCLOSED BY '"'  LINES TERMINATED BY '\r\n';
EXIT;

script SQL que l'on ChaineConstruira dans un mysql.sql pour son exécution dans le batch via un LanceAppli.

PS: on a aussi la solution d'un INSERT INTO multi enregistrement directement sur le serveur, moins rapide mais trés simple... si on parvient à le lancer en ligne de commande...
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2