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 :

[IB][TIBCLIENTDATASET][D7 pro] LoadFromFile()


Sujet :

Bases de données Delphi

  1. #1
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut [IB][TIBCLIENTDATASET][D7 pro] LoadFromFile()
    Bonjour,

    Impossible de recharger un fichier dans un TIBClientDataSet.

    Je sauvegarde un enregistrement avec SaveToFile() , lorsque je veux recharger le fichier dans mon TIBClientDataSet avec LoadFromFile(), j'ai toujours un message d'erreur :

    Classe d'exception EDBClient avec le message "Non concordance dans le paquet de données"

    Or je sauvegarde et recharge depuis la même table .
    Les noms des champs, le type de données et leur longueur est donc la même!

    Quelqu'un connaît-il une procédure qui permettrait de sauvegarder des enregistrements dans un fichier et qui permettrait de les recharger ultérieurement ? Avec quel composant : IBQuery, IBClientdataSet ... ?
    Attention : Une image BMP figure parmi les données à sauvegarder.

    Merci d'avance.

    N1bus

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bon,aprés des heures de recherche sur le Web, j'ai finalement trouvé une solution que j'ai adapté à mon cas.

    Pour ne pas avoir cette erreur, il faut créer un TIBClientDataset supplémentaire, y charger le fichier , puis transférer les données dans le
    TIBClientDatset d'origine pour enfin les envoyer dans la base.

    Ce qui donne un truc comme ça :

    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
        With TIBClientDataSet.Create(nil) do // création du TIBClientDataset  supplémentaire
    begin
        try
        LoadFromFile('MonFichierXport.TLD'); // chargement du fichier
        First();
        if MonTIBClienDS_Dorigine.Active = False then
            MonTIBClienDS_Dorigine.Open; // ouverture du TIBClientDataset  d'origine
        while not Eof do // copie  des valeurs dans les champs correspondants
        begin
            MonTIBClienDS_Dorigine.Append(); 
            for i := 0 to MonTIBClienDS_Dorigine.FieldCount-1 do
            begin
            for j := 0 to FieldCount-1 do
                if MonTIBClienDS_Dorigine.Fields[i].FieldName = Fields[j].FieldName then
               MonTIBClienDS_Dorigine.Fields[i].Value := Fields[j].Value;
            end;
            MonTIBClienDS_Dorigine.Post();
            Next();
        end;
        finally
        Free();
      end;
    end;
    IBTransaction.Commit ; // validation de la transaction
    Attention :
    Pour que cela fonctionne, il faut avoir sauvé le fichier au préalable avec le
    TIBClientDataset d'origine pour que les champs correspondent (type de données + longueurs). Sinon Erreur !

    Pour info : Dans mon cas, les Blob texte ou BMP fonctionnent normalement aprés le rechargement des données.

    Voilà.
    En espérant que cela serve à quelqu'un...

    N1bus

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

Discussions similaires

  1. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 11h53
  2. Réponses: 1
    Dernier message: 06/12/2002, 23h33
  3. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    Réponses: 4
    Dernier message: 18/11/2002, 12h39
  4. [filemaker pro]odbc et dsn less
    Par google dans le forum Autres SGBD
    Réponses: 7
    Dernier message: 24/06/2002, 16h26
  5. [PRO*C] Recherche information
    Par Anonymous dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 04/04/2002, 18h53

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