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 :

TclientDataset en maitre-details


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Points : 32
    Points
    32
    Par défaut TclientDataset en maitre-details
    Bonjour,
    dans mon logciel que je travaille sous delphi 7 / sql server 2000, j'utilise les composants TclientDataSet pour travailler en local avant de mettre à jour les donnees dans le serveur, il se trouve que je coince sur l'utilisation de ce composant très utile. le problème apparait quand je l'utilise en maître détails.
    en général l'erreur suivante s'affiche record not found or changed by anther user .
    voici les détails de mes tables :
    PieceM : TTable ( num_piece;date_piece;vente_achat;ref_client_four;....; mnt_net_a_paye) .
    datasetprovider1 lié à MieceM;
    Tpiecem : TclienDataset lié à datasetprovider1 ;
    DSpiecem : Tdatasource lié à TpieceM
    du coté détails j'ai
    pieced: ttable (num_ligne : integer; num_piece;ref_article; design_article;...;Total_Ht);
    datasetprovider2 lié à pieced
    TpieceD : tclientDataset lié à datasetprovider2
    et dspieced : tdatasource lié à TpieceD.

    j'ai lié Pieced à TpieceM en positionnant le masterdatasource de pieced à dspiecem et de meme masterdatasource de tpieced à je la dspiecem
    j'ai ajouter des champs agrégats à Tpieced comme total_ht _total_tva ...
    tout à l'ère de bien fonctionner mais dés fois je reçois le maudit message not found et dés fois quand je supprime toutes les lignes de la table details et j'enregistre les lignes supprimées reviennent sur le debegrid il fallait que je ferme la fiche et je la relance pour que ça disparrait.


    je modifie les table ce fragment de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tpiecem.edit; tpieced.edit
    j'enregistre par ce fragment :
    [CODE]tpiecem.ApplyUpdates(-1); tpieced.applyupdate(-1) ;/CODE]
    je supprime par :
    merci mes amis de me conseiller sur la maniere d'utiliser le clientdataset, devrais je passer par le composant base de donnee tdatabase ?

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Houlà ... même si tu n'as qu'un 'client' sur ton SQLServer il est conseillé de plutôt :
    1/ identifier les enregistrements à supprimer.
    2/ Avec ces éléments créer une requète SQL de suppression, penser à créer un fichier de log et y stocker la requète.
    3/ Exécuter cette requète SQL en gérant une exception sur cette exécution.

    Du coup c'est plus facile à suivre et si tu as un pb tu peux voir les requètes dans ton fichier de log et exécuter celles qui posent pb, directement dans l'outil de gestion de SQLServer.

    De plus ça te permet de vraiment gérer en client serveur.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Points : 32
    Points
    32
    Par défaut dois je laisser tomber la solution Tclientdataset
    Merci philnext pour t'as réponse; mais dis moi je dois donc laisser tomber la solution de clientdataset et passer en mode requête sql, je vais devoir refaire tout le logiciel, pourtant je sens que je suis tout prés de la solution !!

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Tu es peut être près de la solution mais tu vas voir que le principe que tu as adopté va te poser d'autres pb dès que tu vas mettre ton soft en 'production'.
    De plus même si c'est toujours du boulot il est toujours possible de 'migrer' un partie de ton soft en SQL et garder le fonctionnement actuel pour le reste, notamment les requêtes de consultation.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Points : 32
    Points
    32
    Par défaut MANIPULATION DES LIGNES DETAILS AVEC REQUETES SQL
    JE VAIS ADOPTER LA SOLUTION DE REQUETES SQL QUI SEMBLE EFFECTIVEMENT MOINS COUTEUSE EN TEMPS DE REPONSE, MAIS COMMENT RESOUDRE LE PROBLEME DE TRAVAIL EN LOCAL AVANT DE DECIDER DE METTRE A JOUR LES DONNEES SUR LE SERVEUR SQL AVEC LES REQUETES SQL, POUR LA TABLE MAITRE C GERABLE AVEC UN EDIT; PUIS UN POST MAIS POUR LES LIGNES DE DETAILS SI JE DOIS MODIFIE UNE LIGNE PUIS SUPPRIMER UNE AUTRE ET A LA FIN JE DECIDE DE REVENIR EN ARRIERE ET ANNULER CES OPERATIONS PAS MOYENS,DE PLUS LA MANIPULATION DES LIGNES DETAILS GENERE JE PENSE UN TRAFIC RESEAU DU AUX PLUSIEURES REQUETES DE MODIFICATION, DE SUPPRISSION ET DE POST DES LIGNES DETAILS QUE L'UTILISTAUER MANIPULE SANS LES COMPTER AVANT D'ARRETER SA LISTE DE LIGNES DETAILS.
    MERCI DE M'AICLAIRER SUR CE POINT QUE JE PENSE IMPORTANT;

Discussions similaires

  1. Insertion dans 2 tables (Maitre + detaille )
    Par nil dans le forum Bases de données
    Réponses: 11
    Dernier message: 09/11/2005, 21h30
  2. [TTable] Pb avec une relation maitre-detail
    Par kase74 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/10/2005, 10h34
  3. [jdbc/JAVA] maitre/detail ;qlq a un lien!
    Par b_52globemaster dans le forum JDBC
    Réponses: 8
    Dernier message: 03/08/2005, 20h44
  4. [C#] [WinForms] DataGrids maitre / details séparés
    Par aeled dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/03/2005, 12h18
  5. [Ferme] DBLookup fiche detail (relation maitre detail)
    Par boyerf dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/02/2004, 20h12

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