Copier comme des champs d'une table à l'autre


Comment faire pour dupliquer les données dans les tableaux.

Développeur Delphi
Le Droit D'Auteur Pinnacle Publishing, Inc. Tous droits réservés.Copier Comme des Champs d'Une Table à l'Autre
Steve Zimmelman
Dans presque toutes les applications que je développe, il arrive un moment quand j'ai besoin de copier les champs d'une table à l'autre. Carl Hewitt et j'ai écrit une fonction appelée XferFields (voir Listing 1) pour le rendre facile. XferFields est similaire à l'Éparpillement et de Recueillir les commandes disponibles dans FoxProÊwith l'exception qu'il n'y a pas de Mémoire de Variables impliquées, et le transfert de l'information est faite sur les dossiers en cours situé dans les tables Source et de Destination.
XferFields va transférer tous les champs de la Source à tous les champs de même Nom et de même Type de données dans la table de Destination, et renvoie une valeur Booléenne False seulement si tous les champs dans la table de Destination ne parviennent pas à être mis à jour. Chaque fois qu'un terrain de transfert tentative échoue, une variable de type Entier est incrémenté. Si l'incrément compte est égal à la table de Destination du FieldCount, alors il est supposé qu'aucun des champs ont été transférés et que quelque chose est faux. Vous pouvez alors gérer l'exception de toute façon vous le souhaitez dans votre code.
Une utilisation simple pour XferFields pourrait ressembler à ceci:

Si XferFields(Table1,Table2)
& nbsp & nbsp & nbsp Table2.Post
Else Begin
& nbsp & nbsp & nbsp Table2.Annuler
& nbsp & nbsp & nbsp ShowMessage('XferFields a Échoué!')
Fin
Listing 1. Le XferFields fonction.
// **********************************************
// Fonction XferFields
// Version: Delphi 2.0
// ecrit Par: Carl Hewitt & Steve Zimmelman
// transfère les champs de la Source de toute
// les champs de même Nom et de même type dans le
// de Destination.
// Si la table de Destination est de Parcourir l'État,

// il sera placé en État de modification et retourné
// de la même façon.
// **********************************************
Fonction de XferFields(Source, Dest :TDataSet) : Boolean
Var
& nbsp & nbsp & nbsp i : Integer
& nbsp & nbsp & nbsp nErr: Entier
& nbsp & nbsp & nbsp f1 : TField
& nbsp & nbsp & nbsp f2 : TField
Begin
& nbsp & nbsp & nbsp // nErr est utilisé pour compter échec
& nbsp & nbsp & nbsp // le champ des transferts
& nbsp & nbsp & nbsp nErr := 0
& nbsp & nbsp & nbsp // assurez-vous que la table de Destination se trouve dans
& nbsp & nbsp & nbsp // Modifier l'état.
& nbsp & nbsp & nbsp Si (Dest.Etat = dsBrowse)
& ! & ! & ! & ! & ! & nbsp Dest.Edit
& ! & ! & ! & ! & ! & nbsp For i := 0 to (Dest.FieldCount -1) Do Begin
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp f1 := Dest.FindField(
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Dest.Champs[i].FieldName)
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp f2 := Source.FindField(
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Dest.Champs[i].FieldName)
& ! & ! & ! & ! & ! & nbsp Si (f1 <> nil) Et (f2 <> nil) Ensuite, Commencez
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // transfert de valeur du champ
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp f1.valeur := f2.valeur
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp à l'Exception de
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // Incrémenter nombre d'erreurs
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Inc(nErr)
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Fin
& ! & ! & ! & ! & ! & nbsp Fin
& nbsp & nbsp & nbsp Fin
& nbsp & nbsp & nbsp // Si (nErr = Dest.FieldCount)
& nbsp & nbsp & nbsp // pas de champs ont été transférés et
& nbsp & nbsp & nbsp // le Résultat sera Faux.
& nbsp & nbsp & nbsp Result := (nErr < Dest.FieldCount)
Fin









Copier comme des champs d'une table a l'autre


Copier comme des champs d'une table a l'autre : Plusieurs milliers de conseils pour vous faciliter la vie.


Comment faire pour dupliquer les donnees dans les tableaux.

Developpeur Delphi
Le Droit D'Auteur Pinnacle Publishing, Inc. Tous droits reserves.Copier Comme des Champs d'Une Table a l'Autre
Steve Zimmelman
Dans presque toutes les applications que je developpe, il arrive un moment quand j'ai besoin de copier les champs d'une table a l'autre. Carl Hewitt et j'ai ecrit une fonction appelee XferFields (voir Listing 1) pour le rendre facile. XferFields est similaire a l'Eparpillement et de Recueillir les commandes disponibles dans FoxProEwith l'exception qu'il n'y a pas de Memoire de Variables impliquees, et le transfert de l'information est faite sur les dossiers en cours situe dans les tables Source et de Destination.
XferFields va transferer tous les champs de la Source a tous les champs de meme Nom et de meme Type de donnees dans la table de Destination, et renvoie une valeur Booleenne False seulement si tous les champs dans la table de Destination ne parviennent pas a etre mis a jour. Chaque fois qu'un terrain de transfert tentative echoue, une variable de type Entier est incremente. Si l'increment compte est egal a la table de Destination du FieldCount, alors il est suppose qu'aucun des champs ont ete transferes et que quelque chose est faux. Vous pouvez alors gerer l'exception de toute façon vous le souhaitez dans votre code.
Une utilisation simple pour XferFields pourrait ressembler a ceci:

Si XferFields(Table1,Table2)
& nbsp & nbsp & nbsp Table2.Post
Else Begin
& nbsp & nbsp & nbsp Table2.Annuler
& nbsp & nbsp & nbsp ShowMessage('XferFields a Echoue!')
Fin
Listing 1. Le XferFields fonction.
// **********************************************
// Fonction XferFields
// Version: Delphi 2.0
// ecrit Par: Carl Hewitt & Steve Zimmelman
// transfere les champs de la Source de toute
// les champs de meme Nom et de meme type dans le
// de Destination.
// Si la table de Destination est de Parcourir l'Etat,

// il sera place en Etat de modification et retourne
// de la meme façon.
// **********************************************
Fonction de XferFields(Source, Dest :TDataSet) : Boolean
Var
& nbsp & nbsp & nbsp i : Integer
& nbsp & nbsp & nbsp nErr: Entier
& nbsp & nbsp & nbsp f1 : TField
& nbsp & nbsp & nbsp f2 : TField
Begin
& nbsp & nbsp & nbsp // nErr est utilise pour compter echec
& nbsp & nbsp & nbsp // le champ des transferts
& nbsp & nbsp & nbsp nErr := 0
& nbsp & nbsp & nbsp // assurez-vous que la table de Destination se trouve dans
& nbsp & nbsp & nbsp // Modifier l'etat.
& nbsp & nbsp & nbsp Si (Dest.Etat = dsBrowse)
& ! & ! & ! & ! & ! & nbsp Dest.Edit
& ! & ! & ! & ! & ! & nbsp For i := 0 to (Dest.FieldCount -1) Do Begin
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp f1 := Dest.FindField(
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Dest.Champs[i].FieldName)
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp f2 := Source.FindField(
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Dest.Champs[i].FieldName)
& ! & ! & ! & ! & ! & nbsp Si (f1 <> nil) Et (f2 <> nil) Ensuite, Commencez
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // transfert de valeur du champ
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp f1.valeur := f2.valeur
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp a l'Exception de
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp // Incrementer nombre d'erreurs
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Inc(nErr)
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp Fin
& ! & ! & ! & ! & ! & nbsp Fin
& nbsp & nbsp & nbsp Fin
& nbsp & nbsp & nbsp // Si (nErr = Dest.FieldCount)
& nbsp & nbsp & nbsp // pas de champs ont ete transferes et
& nbsp & nbsp & nbsp // le Resultat sera Faux.
& nbsp & nbsp & nbsp Result := (nErr < Dest.FieldCount)
Fin


Copier comme des champs d'une table à l'autre

Copier comme des champs d'une table à l'autre : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation