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?