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

Bases de données Delphi Discussion :

Exporter données d'une stringgrid vers table paradox


Sujet :

Bases de données Delphi

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Exporter données d'une stringgrid vers table paradox
    bonjour à tous,

    Mise à part le datapump de delphi, existe-il un script qui permet d'exporter les données d'une stringgrid vers une table paradox ca m'evitera de taper du code. Je vous remercie.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Je pense que tu dois le faire à la main. J'avais fais ce genre de chose il y a quelques années. Si tu me donnes un petit exemple de ton stringGrid de sa source (genre table mémoire) et de son contenu je peux regarder.

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Merci pour ta réponse ALWEBER.

    J'importe un fichier excel dans le stringgrid avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    function Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile: string): Boolean;
    const
      xlCellTypeLastCell = $0000000B;
    var
      XLApp, Sheet: OLEVariant;
      RangeMatrix: Variant;
      x, y, k, r: Integer;
    begin
      Result := False;
      // Create Excel-OLE Object
      XLApp := CreateOleObject('Excel.Application');
      try
        // Hide Excel
        XLApp.Visible := False;
     
        // Open the Workbook
        XLApp.Workbooks.Open(AXLSFile);
     
        // Sheet := XLApp.Workbooks[1].WorkSheets[1];
        Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
     
        // In order to know the dimension of the WorkSheet, i.e the number of rows
        // and the number of columns, we activate the last non-empty cell of it
     
        Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
        // Get the value of the last row
        x := XLApp.ActiveCell.Row;
        // Get the value of the last column
        y := XLApp.ActiveCell.Column;
     
        // Set Stringgrid's row &col dimensions.
     
        AGrid.RowCount := x;
        AGrid.ColCount := y;
     
        // Assign the Variant associated with the WorkSheet to the Delphi Variant
     
        RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
        //  Define the loop for filling in the TStringGrid
        k := 1;
        repeat
          for r := 1 to y do
            AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
          Inc(k, 1);
          AGrid.RowCount := k + 1;
        until k > x;
        // Unassign the Delphi Variant Matrix
        RangeMatrix := Unassigned;
     
      finally
        // Quit Excel
        if not VarIsEmpty(XLApp) then
        begin
          // XLApp.DisplayAlerts := False;
          XLApp.Quit;
          XLAPP := Unassigned;
          Sheet := Unassigned;
          Result := True;
        end;
      end;
    end;
    Bon pour le stringgrid c'est un stringgrid. Il n'y a que des strings. Pour la table paradox elle contient une quarantaine de champ de type Integer, string date, boolean, etc... Voilà
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Dans un premier temps il est mieux de travailler avec un Dataset chargé depuis un csv que tu construit dynamiquement à partir de ta lecture du fichier XLSX
    je ne sais pas dans quelle version de Delphi tu es.
    Ci joint un premier exemple qui fonction avec Delphi XE7 et + qui montre les copie de jeu de données
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Je suis dans D7
    avec xml Je ne pense pas je m' y connais pas. Mais pour CVS bonne idée ca peut se faire
    Merci ALWEBER et pour le fichier exemple aussi.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  6. #6
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par freud Voir le message
    Je suis dans D7
    avec xml Je ne pense pas je m' y connais pas. Mais pour CVS bonne idée ca peut se faire
    Merci ALWEBER et pour le fichier exemple aussi.
    Tu as dans les drivers BDE un driver csv/txt et tu peux utiliser les outils batch du bde

  7. #7
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Merci encore.
    Je ne vais pas le faire tout de suite je suis entrain de préparer cela.
    Une petite question si c'est possible. Je sais que tu as beaucoup travailler avec paradox et peut-être même avoir utiliser le datapump, alors si c'est la cas es-ce que le datapump d'excel vers pdx prend les types de données de la table de destination ?
    Merci.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  8. #8
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Ok c'est bon j'ai pu importer 10 000 salariés avec ta méthode mais en utilisant le compos de la jvcl TJcvsDataSet. Alors je sujet est résolu
    Merci ALWEBER.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2016, 18h10
  2. [AC-2003] Renvoi de données d'une requête vers Table
    Par wolfens77 dans le forum Access
    Réponses: 2
    Dernier message: 18/05/2012, 17h04
  3. [MySQL] Exporter données d'une table vers une autre table SQL
    Par sinifer dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 18/05/2009, 08h54
  4. [AC-2003] Exporter des données d'une requete vers une table
    Par FCL31 dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/04/2009, 09h41
  5. Réponses: 1
    Dernier message: 21/07/2006, 11h54

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