Expoter une table MySql et stocker dans un fichier.sql ou .ini
Manoupier
Messages postés7Date d'inscriptionlundi 16 avril 2012StatutMembreDernière intervention 8 novembre 2014
-
Modifié par jordane45 le 10/11/2014 à 14:23
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
10 nov. 2014 à 14:36
Bonsoir à tous !
Je suis programmeur Delphi et j'ai conçu une application qui fonctionne bien en réseau avec une base de donnée MySQL. Mon problème est le suivant:
J'ai écrit une requête de stockage d'une table dans un fichier .ini et ça marche très bien lorsque je l'exécute à travers MySQL (SQLyog).
SYNTAXE:
SELECT * FROM `Matable` INTO OUTFILE 'D:\Matable.ini' FIELDS TERMINATED BY ';' ENCLOSED BY
'"' LINES STARTING BY 'data' TERMINATED BY ';\n'
Mais lorsque je reviens dans l'EDI Delphi pour exécuter la même requête, ça ne me donne rien comme résultat. Voici la procédure:
CODE DELPHI:
procedure TMySQLConnection.SetDistantTble(const Matable: string);
begin
Try
FSQLQuery.Close;
FSQLQuery.SQL.Clear;
FSQLQuery.SQL.Text := 'SELECT * FROM '+Matable+
' INTO OUTFILE '+ QuotedStr(D:\Matable.ini)+ ' FIELDS TERMINATED BY '+QuotedStr(';')+' ENCLOSED BY '+QuotedStr('"')
+' LINES STARTING BY '+QuotedStr('data')+' TERMINATED BY '+QuotedStr(';\n')+ ';';
FSQLQuery.Close;
Except
FSQLQuery.Close;
End;
end;
SVP aidez-moi à comprendre pour quoi la requête ne marche pas quand je la lance avec Delphi sous forme de code alors qu'elle marche bien dans MySQL. Merci
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 10 nov. 2014 à 14:21
Salut,
Essaie comme ceci :
procedure TMySQLConnection.SetDistantTble(const Matable: string);
begin
With FSQLQuery do begin
Close;
With SQL do begin
Clear;
Text := 'SELECT * FROM '+Matable+ ' INTO OUTFILE '+
QuotedStr('D:\Matable.ini')+ ' FIELDS TERMINATED BY '
+QuotedStr(';')+' ENCLOSED BY '
+QuotedStr('"') +' LINES STARTING BY '
+QuotedStr('data')+' TERMINATED BY '
+QuotedStr(';\n')+ ';';
end;
Try
Open; // Ou "ExecSQL;" (Je ne travaille pas sur MySQL)
Except
on e : Exception
do ShowMessage(e.Message);
end;
end;
end;