C'è una differenza nel protocollo sottostante per ODBC, OLEDB & amp; ADO.NET
-
11-07-2019 - |
Domanda
Quando si comunica con un database SQL Server utilizzando uno dei sistemi tipici, ODBC, OLEDB o ADO.NET, il protocollo di base sottostante è lo stesso? Tutte le differenze tra questi sistemi sono fondamentalmente solo problemi lato client?
Sono solo diverse varianti del trasferimento TDS (Tabular Data Stream)?
[MS-TDS]: Specifica del protocollo del flusso di dati tabulare
Oppure esistono modi diversi per comunicare con il server di database e ci sono differenze fondamentali tra questi protocolli?
Soluzione
ODBC, OLE DB e ADO.NET sono API / framework diversi per la comunicazione con il database. Ad esempio, ADO funziona sui dati in modo connesso, principalmente utilizzando i cursori sul lato server, mentre ADO.NET funziona in modo disconnesso, estraendo rapidamente i dati dal server e memorizzandoli nella cache sul client negli oggetti del set di dati ADO.NET.
Sotto il cofano, ognuno di questi sta inviando comandi SQL a SQL Server su TDS e sta ricevendo i dati tramite TDS. OLE DB ti consente di avvicinarti a TDS per le prestazioni, mentre ODBC si estrae molto per fornire un'interfaccia coerente a molte origini dati diverse.