sql-server - datasets - query ado net
¿Hay alguna diferencia en el protocolo subyacente para ODBC, OLEDB y ADO.NET? (1)
Al comunicarse con una base de datos de SQL Server utilizando uno de los sistemas típicos, ODBC, OLEDB o ADO.NET, ¿el protocolo básico subyacente es el mismo? ¿Son todas las diferencias entre estos sistemas básicamente solo problemas del lado del cliente?
¿Es esto solo diferentes sabores de la transferencia de TDS (flujo de datos tabulares)?
[MS-TDS]: especificación del protocolo de flujo de datos tabular
¿O existen diferentes maneras reales de hablar con el servidor de la base de datos y existen diferencias fundamentales entre estos protocolos?
ODBC, OLE DB y ADO.NET son diferentes API / frameworks para comunicarse con la base de datos. Por ejemplo, ADO trabaja en datos de forma conectada, principalmente utilizando cursores del lado del servidor, mientras que ADO.NET opera de manera desconectada, extrayendo los datos del servidor rápidamente y almacenándolos en caché en el cliente en los objetos del conjunto de datos ADO.NET.
Debajo del capó, cada uno de estos está enviando comandos SQL a SQL Server a través de TDS, y recibiendo datos a través de TDS. OLE DB le permite acercarse a TDS para el rendimiento, mientras que ODBC abstrae mucho para proporcionar una interfaz consistente para muchas fuentes de datos diferentes.