Oracle
 sql >> Base de données >  >> RDS >> Oracle

BDE vs ADO à Delphes

Je ne sais pas pour Delphi 2007, mais j'ai fait la même chose avec Delphi 7 et Oracle 8.

Voici ce que j'ai fait :

  • Définir TAdoDataSet.CursorLocation selon la requête :
    • clUseClient si la requête récupère les enregistrements pour l'interface graphique et que la requête est relativement "simple" - pas de regroupement ni de somme
    • clUseServer si la requête a une sorte d'agrégation (somme, regroupement, comptage)
  • Définir TAdoDataSet.CursorType selon la requête :
    • ctForwardOnly pour les rapports où vous n'avez pas besoin de faire défiler l'ensemble de données - fonctionne uniquement avec clUseServer
    • ctStatique pour l'interface graphique. C'est le seul mode qui fonctionne avec clUseClient
  • Définir TAdoDataSet.LockType selon la requête :
    • ltReadOnly pour chaque ensemble de données qui n'est pas utilisé pour l'édition (grilles, rapports)
    • ltOptimiste lorsque les enregistrements sont publiés dans la base de données immédiatement après la modification (par exemple, l'utilisateur modifie les données sur le formulaire)
    • ltBatchOptimistic lorsque vous modifiez un grand nombre d'enregistrements. C'est pour les situations où vous récupérez un certain nombre d'enregistrements, puis effectuez un traitement dessus, puis envoyez des mises à jour à la base de données par lots. Cela fonctionne mieux en combinaison avec clUseClient et ctStatic.
  • D'après mon expérience, le fournisseur Microsoft OLEDB pour Oracle fonctionnait mieux que le fournisseur Oracle OleDb. Tu devrais tester ça.
    Modifier : Consultez le commentaire de Fabricio sur les éventuels problèmes de blob.
  • Remplacer TAdoQUery avec TAdoDataSet . TAdoQuery a été créé pour la conversion des applications de BDE en ADO, mais la recommandation de Borland/Codegear était d'utiliser TAdoDataSet
  • Revérifiez la chaîne de connexion Oracle pour vous assurer que vous n'avez pas de latence réseau. Combien de temps dure la connexion à Oracle ? Combien de temps dure TnsPing ?