sql >> Base de Datos >  >> RDS >> Oracle

BDE vs ADO en Delfos

No sé sobre Delphi 2007, pero hice lo mismo con Delphi 7 y Oracle 8.

Estas son las cosas que hice:

  • Establecer TAdoDataSet.CursorLocation según consulta:
    • clUsarCliente si la consulta obtiene registros para GUI y la consulta es relativamente "simple" - sin agrupación ni suma
    • clUsoServidor si la consulta tiene algún tipo de agregación (suma, agrupación, conteo)
  • Establecer TAdoDataSet.CursorType según consulta:
    • ctForwardOnly para informes en los que no es necesario desplazarse hacia atrás a través del conjunto de datos:solo funciona con clUseServer
    • ctStatic para GUI. Este es el único modo que funciona con clUseClient
  • Establecer TAdoDataSet.LockType según consulta:
    • ltReadOnly para cada conjunto de datos que no se usa para editar (cuadrículas, informes)
    • ltOptimista cuando los registros se publican en la base de datos inmediatamente después del cambio (por ejemplo, datos de edición del usuario en el formulario)
    • ltBatch Optimista cuando cambia una gran cantidad de registros. Esto es para situaciones en las que obtiene una cantidad de registros, luego los procesa y luego envía actualizaciones a la base de datos por lotes. Esto funciona mejor combinado con clUseClient y ctStatic.
  • Según mi experiencia, el proveedor de Microsoft OLEDB para Oracle funcionó mejor que el proveedor de Oracle OleDb. Deberías probar eso.
    Editar: Revisa el comentario de Fabricio sobre posibles problemas de blob.
  • Reemplazar TAdoQUEry con TAdoDataSet . TAdoQuery fue creado para la conversión de aplicaciones de BDE a ADO, pero la recomendación de Borland/Codegear fue usar TAdoDataSet
  • Vuelva a verificar la cadena de conexión de Oracle para asegurarse de que no tenga latencia de red. ¿Cuánto dura la conexión a Oracle? ¿Cuánto dura TnsPing?