IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Importer des données dans un ClientDataSet


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Importer des données dans un ClientDataSet
    Bonjour tout le monde,

    J'aurais voulu savoir s'il est possible d'importer des données d'un fichier (xls ou csv) dans un ClientDataSet. Et si oui, comment faire ?

    Merci

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Je dis peut-être n'importe quoi mais...

    As-tu essayé de faire une connexion ODBC de type "Excel Files" et d'ouvrir le fichier à l'aide d'un TADOQuery (Microsoft OLE DB Provider for ODBC Driver) connecté à un TDataSetProvider connecté au TClientDataSet ?

    J'ai jamais essayé mais j'aimerais connaître le résultat
    -Slimjoe

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci, je vais essayer cela demain, voir ce que ça donne en espérant que...
    Je viendrais dire quoi

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'y suis pas arrivé avec cette solution.

    J'ai essayé avec un ClientDataSet et l'appel à LoadFromFile() d'un clientdataset
    mais il me dit "Non corcordance avec le paquet de données"

  5. #5
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par Delhio
    J'y suis pas arrivé avec cette solution.

    J'ai essayé avec un ClientDataSet et l'appel à LoadFromFile() d'un clientdataset
    mais il me dit "Non corcordance avec le paquet de données"
    Salut!

    LoadFromFile ne sert pas à faire ce que tu veux. LoadFromFile ouvre un fichier binaire ou XML et le charge dans le ClientDataSet. Ton fichier il n'est ni binaire ni XML, c'est un fichier Excel.

    Je connais 3 façons de remplir un objets TClientdataSet.

    1. Tu peux le remplir à l'aide de LoadFromFile si tes données concordent (généralement elles proviennent d'un autre ClientDataSet qui a fait SaveToFile). C'est ce que tu as essayé.
    2. Tu peux ajouter manuellement les colonnes dans le ClientDataSet et faire des Append/Post manuellement pour y insérer tes données ligne par ligne.
    3. Tu peux connecter le TClientDataSet à un TDataSetProvider (via la propriété ProviderName du TClientDataSet), connecter le TDataSetProvider à un objet TDataSet (un TTable, un TQuery, un TADOQuery, etc.) et ouvrir le ClientDataSet (TClientDataSet.Open()). Quand tu fais ça, le ClientDataSet demande à son provider de lui fournir des données. Ce dernier ouvre donc le DataSet (dans ton cas c'est un query qui lit un fichier Excel), copie les données dans le ClientDataSet et ferme le DataSet.


    Je crois que le gros de la tâche est d'ouvrir un Query sur un fichier Excel. Je n'ai pas testé mais je sais qu'une fois fait (une fois que ton ADOQuery est capable d'ouvrir le fichier Excel) c'est un jeu d'enfant que de mettre ça dans un TClientDataSet.

    Bon dev!
    -Slimjoe

  6. #6
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Tiens, j'ai pris 2 minutes et voici ce qui fonctionne parfaitement sur mon poste.

    Mets un composant TADOQuery, TDataSetProvider et TClientDataSet sur ta fiche.

    Change la propriété ConnectionString de ADOQuery1 pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Excel Files;DBQ=C:\Book1.xls;DefaultDir=C:;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=C:\Book1.xls
    "C:\Book1.xls", c'est le nom du fichier Excel


    Change la propriété SQL de ADOQuery1 pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [Sheet1$]
    "Sheet1". c'est le nom de mon premier tableur dans le fichier (Attention! Ça prend le $).


    Change la propriété DataSet de DataSetProvider1 à ADOQuery1.
    Change la propriété ProviderName de ClientDataSet1 à DataSetProvider1.
    Change la propriété Active de ClientDataSet1 à true.

    ...et voilà!
    -Slimjoe

Discussions similaires

  1. [VB6 + EXCEL] Importer des données dans EXCEL
    Par david71 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/07/2007, 18h43
  2. Importer des données dans une table.
    Par nodogeid dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/06/2007, 12h08
  3. importer des données dans Hyperfile
    Par krak70 dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 13/04/2007, 17h19
  4. Importer des données dans Excel
    Par denis finch dans le forum Excel
    Réponses: 2
    Dernier message: 28/09/2006, 18h27
  5. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo