Récemment, j'ai rencontré des problèmes de traitement par lots de données lorsque j'écrivais un module de développement de base de données pour un bon ami.
J'ai pensé à certaines méthodes de développement pour le traitement par lots de données, et je n'ose pas profiter d'un résumé spécial et les partager avec vous.
Dans les systèmes d'applications de base de données, les données sont souvent parmi les dossiers, telles que l'appel d'appel, la suppression et le changement.
Cette opération par lots est transportée avec les commandes correspondantes dans des outils de développement de base de données spéciaux tels que VFP à l'aide des commandes d'ajout et de copie.
Les clauses de commande peuvent être facilement terminées. Cependant, il n'y a pas de commandes similaires dans d'autres outils de développement.
Au lieu de cela, il fournit des contrôles ou des objets qui peuvent remplir des fonctions similaires, comme dans PowerBuilder
Utilisez la ligne de tuyau (pipeline de données) pour compléter le traitement par lots de données entre deux tables isomorphes ou différentes.
Cet article introduit la méthode de traitement par lots à l'aide de composants de la minuterie lors de l'utilisation de Delphi pour le développement de la base de données.
Dans le développement de Delphi, les méthodes les plus utilisées sont ADO et BDE lors de l'utilisation de Delphi pour le développement de la base de données.
Borland a donc dépensé beaucoup d'expérience sur les composants BDE, il y a donc un contrôle TBatchMove sur le traitement par lots de données qui peut terminer le traitement par lots de données.
L'opération spécifique doit être terminée en définissant la propriété Mode de TBatchMove, puis en appelant la méthode d'exécution. Aide avec BDE.
Les résultats réels de divers modes de fonctionnement dans cet article se trouvent dans le bureau de la base de données de Delphi
Vu dans.
Ce n'est pas l'objectif de cet article, donc je n'élaborerai pas à ce sujet.
L'objectif de cet article est: Méthode de traitement par lots de données dans ADO.
Lorsque vous obtenez ce problème, la méthode générale est de traverser toutes les données et d'insérer des boucles informatiques.
Cependant, ce dont je veux parler ici est une méthode de traitement par lots rapides, efficaces et recommandées.
Procédure TForm1.FormCreate (Sender: Tobject);
var
Mypath: String;
const
MyPassw = '****';
Commencer
MyPath: = ExtractFilePath (paramstr (0));
Adoconnection1.ConnectionString: = 'Provider = Microsoft.Jet.oledb.4.0; Source de données =' +
Mypath + 'db / db.mdb; jet oledb: mot de passe de données =' +
MyPassw + '; persistant la sécurité info = false';
//////////// Configurez le moteur de données et chargez le mot de passe
Adoconnection1.loginprompt: = false;
Adoconnection1.connected: = true;
Adoable1.connection: = adoconnection1;
Adoable1.tableName: = 'tab1';
Adotable2.Connection: = Adoconnection1;
Adoable2.tableName: = 'tab2';
essayer
Adotable2.Open;
Adoable1.open;
DataSource1.Dataset: = Adotable1;
Dbgrid1.datasource: = dataSource1;
Dbnavigator1.datasource: = dataSource1;
sauf
MessageBox (0, «Impossible d'ouvrir la base de données», «Erreur», MB_OK);
fin;
//////////////////// boucle de contrôle de la minuterie
Commencer
///////////////////// Traitement des données Lot des tables hétérogènes qui effectuent un contrôle d'erreur
DataSource2.dataset.insert;
Adotable2.fields [0] .Assstring: = adotable1.fields [0] .Assstring;
Adotable2.fields [1] .Sassstring: = adotable1.fields [1] .Sassstring;
DataSource1.dataset.Next;
Si dataSource1.dataset.eof = true alors TIMER1.Enabled: = false;
Si dataSource1.dataset.eof = true alors showMessage («Les données ont été importées avec succès!»);
sauf
MessageBox (0, «Importation de données a échoué», «erreur», MB_OK);
fin;
fin;
Datamodule2.datasource1.dataset.next; ////////////////////// cette phrase est la plus critique, c'est-à-dire une instruction LOOP.
Le temps pour insérer un enregistrement (temps de réponse de la minuterie) peut être défini.
Il s'agit de la fonction d'importation par lots des données entre les tables hétérogènes conçues par l'attribut caractéristiques.dataset.Next du composant de la minuterie.
Ensuite, un code similaire peut être implémenté pour la suppression, la mise à jour et d'autres fonctions (utilisez des attributs de source de données pour modifier).
Parce qu'il y a une fonction de requête, j'utilise le composant Tadoquière en développement, à peu près la même méthode.
Auteur: viivd
E-mail: [email protected]
Date: 2004.6.5