2010-08-19 4 views
0

Comment puis-je copier les informations d'un enregistrement d'un jeu de données maître/détail client vers un nouvel enregistrement ou vers un enregistrement existant?copier des enregistrements dans un fichier maître/détail clientdataset delphi dbexpress

Par exemple, je veux copier les données de la facture te n ° 100 à la facture n ° 150 ou les informations de la facture n ° 100 à une nouvelle facture

Avec IBX je l'ai fait avec StoredProcedures mais je suis en cours d'exécution problème avec clientdataset avec 'conflit de verrouillage sur aucune transaction en attente' lorsque j'applique les mises à jour, je pense que c'est parce que l'information est déjà sur le côté serveur.

Merci d'avance

+0

Vous le faites comme je pense que vous le faites. Deux jeux de données client, CDS1 est source, CDS2 est destination, puis CDS2.Insert, CDS2Field1.Value: = CDS1Field1.Value etc, CDS2.Post, CDS2.ApplyUpdates. La vraie question est pourquoi obtenez-vous cette erreur, vous devez fournir plus d'informations pour répondre à cela, mais si vous google le message d'erreur, vous trouverez beaucoup de matériel expliquant pourquoi cela se produit. – LachlanG

+0

Merci beaucoup, je vais regarder dans ce –

Répondre

0

'Verrouiller conflic sur aucune transaction'? AFAIR, il s'agit d'une erreur Interbase/Firebird. Cela pourrait signifier que toute autre connexion modifié le dossier et ne toujours pas commis encore ....

MISE À JOUR: D'autres choses qui viennent à l'esprit:

  • Avez-vous revu la configuration de votre connexion DBX? Si vous ne savez pas/ignorez ce que fait CommitRetaining, assurez-vous qu'il est configuré sur FALSE. Sinon, d'autres problèmes se poseront ...

  • Sur Firebird/Interbase, vous pouvez uniquement valider/annuler à partir de l'application Client. Les SP n'ont rien à faire avec le contrôle des transactions.

+0

Merci beaucoup. Question, je peux commettre une procédure stockée? –

+0

Je pense que c'était ça !! Merci beaucoup beaucoup J'ai mis Commitretain = false sur params de la sqlconection et tout semble bien fonctionner maintenant, il y a beaucoup à apprendre. Quelque chose d'autre que je devrais mettre sur ce params de connexion pour aplanir les choses? –

+0

De l'esprit, non. Mais vous pouvez nous aider si vous fournissez: Nom/Version/Edition du SGBDR (Exemples: Firebird 2.1.1, Édition Express Microsoft SQL Server 2005, etc.), IDE (Delphi - fourni), Version IDE (2010), et la bibliothèque que vous utilisez (dbexpress - vous avez fourni). Si je ne connais pas le message d'erreur de l'esprit et supposé que vous êtes Interbase/Firebird en tant que backend, cette question prendrait beaucoup plus de temps pour obtenir une réponse. –

Questions connexes