Expoter une table MySql et stocker dans un fichier.sql ou .ini

Manoupier Messages postés 7 Date d'inscription lundi 16 avril 2012 Statut Membre Dernière intervention 8 novembre 2014 - Modifié par jordane45 le 10/11/2014 à 14:23
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Derniè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


EDIT : Ajout des balises de code.

2 réponses

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
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;

0
Rejoignez-nous