sql >> Databasteknik >  >> RDS >> Oracle

BDE vs ADO i Delphi

Jag vet inte om Delphi 2007, men jag gjorde samma sak med Delphi 7 och Oracle 8.

Här är saker jag gjorde:

  • Ange TAdoDataSet.CursorLocation enligt fråga:
    • clUseClient om frågan hämtar poster för GUI och frågan är relativt "enkel" - ingen gruppering eller summa
    • clUseServer om frågan har någon form av aggregering (summa, gruppering, räkning)
  • Ange TAdoDataSet.CursorType enligt fråga:
    • ctForwardOnly för rapporter där du inte behöver bläddra tillbaka genom datasetet - fungerar bara med clUseServer
    • ctStatic för GUI. Detta är bara läge som fungerar med clUseClient
  • Ställ in TAdoDataSet.LockType enligt fråga:
    • ltReadOnly för varje datauppsättning som inte används för redigering (rutnät, rapporter)
    • ltoptimistisk när poster läggs upp i databasen omedelbart efter ändring (t.ex. användarredigering av data på formulär)
    • ltBatchOptimistic när du ändrar ett stort antal poster. Detta är för situationer där du hämtar antal poster, sedan bearbetar dem och sedan skickar uppdateringar till databasen i batch. Detta fungerar bäst i kombination med clUseClient och ctStatic.
  • I min erfarenhet fungerade Microsoft OLEDB-leverantör för Oracle bättre än Oracle OleDb-leverantör. Det borde du testa.
    Redigera: Kolla Fabricios kommentar om möjliga blobproblem.
  • Ersätt TAdoQuery med TAdoDataSet . TAdoQuery skapades för konvertering av appar från BDE till ADO, men Borland/Codegears rekommendation var att använda TAdoDataSet
  • Kontrollera Oracle-anslutningssträngen igen för att vara säker på att du inte har nätverkslatens. Hur länge varar det att ansluta till Oracle? Hur lång är TnsPing?


  1. Är det möjligt att tvinga radnivålåsning i SQL Server?

  2. Oracle Security Alert för CVE-2021-44228

  3. Lokala och globala temporära tabeller i SQL Server

  4. Hur använder man Array/Table Parameter till Oracle (ODP.NET 10g) via ADO.NET/C#?