Oracle
 sql >> Database >  >> RDS >> Oracle

BDE vs ADO a Delfi

Non so di Delphi 2007, ma ho fatto la stessa cosa con Delphi 7 e Oracle 8.

Ecco le cose che ho fatto:

  • Imposta TAdoDataSet.CursorLocation secondo la domanda:
    • clUseClient se la query recupera i record per la GUI e la query è relativamente "semplice" - nessun raggruppamento o somma
    • clUseServer se la query ha una sorta di aggregazione (somma, raggruppamento, conteggio)
  • Imposta TAdoDataSet.CursorType secondo la domanda:
    • ctForwardOnly per i rapporti in cui non è necessario scorrere indietro il set di dati - funziona solo con clUseServer
    • ctStatic per la GUI. Questa è l'unica modalità che funziona con clUseClient
  • Imposta TAdoDataSet.LockType secondo la domanda:
    • ltSola lettura per ogni set di dati non utilizzato per la modifica (griglie, report)
    • ltOttimista quando i record vengono pubblicati nel database immediatamente dopo la modifica (ad es. modifica dei dati dell'utente sul modulo)
    • ltBatchOptimistic quando modifichi un numero elevato di record. Questo è per le situazioni in cui recuperi il numero di record, quindi esegui alcune elaborazioni su di essi e quindi invii aggiornamenti al database in batch. Funziona al meglio in combinazione con clUseClient e ctStatic.
  • Secondo la mia esperienza, il provider Microsoft OLEDB per Oracle ha funzionato meglio del provider Oracle OleDb. Dovresti testarlo.
    Modifica: Controlla il commento di Fabricio su possibili problemi di blob.
  • Sostituisci TAdoQUEry con TAdoDataSet . TAdoQuery è stato creato per la conversione di app da BDE ad ADO, ma la raccomandazione di Borland/Codegear era di utilizzare TAdoDataSet
  • Ricontrolla la stringa di connessione Oracle per assicurarti di non avere latenza di rete. Quanto tempo dura la connessione a Oracle? Quanto dura TnsPing?