sql >> Database >  >> RDS >> Oracle

BDE vs ADO in Delphi

Ik weet niets over Delphi 2007, maar ik deed hetzelfde met Delphi 7 en Oracle 8.

Dit zijn dingen die ik heb gedaan:

  • Stel TAdoDataSet.CursorLocation in volgens vraag:
    • clUseClient als query records voor GUI ophaalt en query relatief "eenvoudig" is - geen groepering of som
    • clUseServer als de zoekopdracht een soort aggregatie heeft (som, groepering, telling)
  • Stel TAdoDataSet.CursorType in volgens vraag:
    • ctForwardOnly voor rapporten waarbij u niet terug door de dataset hoeft te scrollen - werkt alleen met clUseServer
    • ctStatic voor GUI. Dit is de enige modus die werkt met clUseClient
  • Stel TAdoDataSet.LockType in volgens vraag:
    • ltReadOnly voor elke dataset die niet wordt gebruikt voor bewerking (rasters, rapporten)
    • ltOptimistisch wanneer records direct na wijziging in de database worden gepost (bijv. gebruiker bewerkt gegevens op formulier)
    • ltBatchOptimistic wanneer u een groot aantal records wijzigt. Dit is voor situaties waarin u een aantal records ophaalt, er vervolgens wat bewerkingen op uitvoert en vervolgens batchgewijs updates naar de database verzendt. Dit werkt het beste in combinatie met clUseClient en ctStatic.
  • In mijn ervaring werkte de Microsoft OLEDB-provider voor Oracle beter dan de Oracle OleDb-provider. Dat zou je moeten testen.
    Bewerken: Check Fabricio's opmerking over mogelijke blob-problemen.
  • Vervang TAdoQuery met TAdoDataSet . TAdoQuery is gemaakt voor de conversie van apps van BDE naar ADO, maar de aanbeveling van Borland/Codegear was om TAdoDataSet te gebruiken
  • Controleer de Oracle-verbindingsreeks opnieuw om er zeker van te zijn dat u geen netwerklatentie heeft. Hoe lang duurt het om verbinding te maken met Oracle? Hoe lang duurt TnsPing?


  1. Aan de slag met GearHost voor MySQL-databaseontwikkeling

  2. python-object opslaan in postgres-tabel met augurk

  3. Een inleiding tot TimescaleDB

  4. Rails-scope - waar in exacte overeenkomsten