В чем разница между поставщиками System.Data.SqlClient и SQLNCLI10.1? - PullRequest
2 голосов
/ 22 августа 2011

Я подключаю свое приложение к базе данных SQL Server 2008.

В чем разница между следующими поставщиками: поставщик System.Data.SqlClient и SQLNCLI10.1, если он есть?

Какой из них следует использовать для подключения к базе данных SQL Server и почему?

Спасибо,

Ответы [ 2 ]

6 голосов
/ 22 августа 2011

System.Data.SqlClient является управляемым провайдером.SQLNCLI является поставщиком OleDB.Что означает, что они настолько различны, насколько это возможно.На самом деле ничего общего, кроме того, что они оба подключаются к SQL Server.Но с использованием совершенно разных и не связанных технологий.В ваших приложениях вы должны использовать SqlCLient при написании управляемого кода (.Net).OleDB для нативных приложений (C ++).

2 голосов
/ 22 августа 2011

Я бы предположил, что единственное отличие состоит в том, что последняя задает конкретную версию (которая может присутствовать или не присутствовать при перемещении кода с сервера на сервер или при касании обновлений программного обеспечения и т. Д.). Бывший просто говорит «получить текущую версию» и, на мой взгляд, безопаснее.

В классические дни ASP я смутно помню, что указание самой последней версии в явном виде (например, Provider=SQLOLEDB.1), казалось, работало лучше, чем просто Provider=SQLOLEDB, но я не вспоминаю подробности. Я помню, что у некоторых веб-хостов не было актуальных вещей, и явный запрос на более свежую версию потерпел бы неудачу из-за чего-то вроде «поставщик не найден».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...