Что они означают, что они больше не будут создавать собственный клиент OLEDB провайдер SQL Server. Есть целый ряд поставщиков OLE DB, которые можно использовать для доступа к SQL Server:
Microsoft OLE DB Provider для SQL Server (SQLOLEDB)
Это SQL Server 2000 эрой OLEDB Provider, что поставляется с самой операционной системой.
SQL Native Client 9.0 OLE поставщик DB (SQLNCLI)
- поставляется с SQL Server 2005
- необходимо вручную установить на клиентских компьютерах
- может подключиться к SQL Server 7, 2000, и 2005
- может подключаться к SQL Server 2008, но они рекомендуют использовать новый собственный клиент
Сервер Native Client SQL 10,0 OLE DB Provider (SQLNCLI10)
- поставляется с SQL Server 2008
- необходимо вручную установить на клиентских компьютерах
- могут подключаться к SQL Server 2000, 2005, 2008, и 2008 R2
Собственный клиент SQL Server 11.0 OLE DB Provider (SQLNCLI11)
- поставляется с SQL Server 2012
- необходимо вручную установить на клиентских компьютерах
- могут подключаться к SQL Server 2005, 2008, 2008 R2, и 2012
- выбросит ошибка, если используется для подключения к SQL Server 2000
Microsoft собирается прекратить создание нового SQL Server Native Client OLEDB поставщиков. Все вместе они создавали: поставщик
- SQL Native Client OLE DB
- SQL ODBC собственного клиента поставщик
Они собираются прекратить создавать драйверы поставщика OLEDB, продолжая при этом о выпуске ODBC водители. Между тем, оригинальный драйвер SQLOLEDB по-прежнему существует (даже в Windows 10). Вы можете продолжать использовать ADO для доступа к SQL Server. ADO - это дружественная оболочка вокруг OLDDB (и неуклюжий зверь API).
И внутри OLE DB вы все равно можете использовать старый OLEDB-драйвер SQLOLEDB SQLOLEDB.
Вы также можете использовать поставщик OLE DB, который оборачивает драйвер ODBC (MSDASQL):
- АДО
- OLEDB
- SQLOLEDB: Microsoft OLE DB Provider для SQL Server
- SQLNCLI: SQL Native Client 9.0 Поставщик OLE DB
- SQLNCLI10: SQL Server Native Cl диентом 10,0 OLE DB Provider
- SQLNCLI11: SQL Server Native клиент 11,0 OLE DB Provider
- MSDASQL: Microsoft OLE DB для драйверов ODBC
- {SQL Server}: Sqlsrv32.dll
- {SQL Server Native Клиент 10,0}: sqlncli10.dll
- {SQL Server Native Client 11.0}: sqlncli11.dll
Если отойти от старого поставщика SQLOLEDB, и к драйверам ODBC, вы должны остерегаться тонкой Gotcha:
SQL Server не поддерживает несколько открытых наборов записей в одном соединении.Например, если у вас были какое-то мастер-деталь:
sql := 'SELECT * FROM Orders';
qry := DatabaseHelper.Execute(sql);
while not qry.EOF do
begin
//...
//Oh, this order needs to be frobbed.
DatabaseHelper.ExecuteNoRecords('UPDATE ORDERS SET Frob=1 WHERE OrderID='+IntToStr(orderID));
qry.Next;
end;
Вы только что пытались сделать вторую вещь на связи, где записи до сих пор итерированная. SQL Server не поддерживает это. К счастью, OLEDB-провайдер знает это и будет молча открыть для вас второе соединение (новое spid
и все) для выполнения действия.
У драйверов ODBC нет такой помощи. Если вы переключитесь на использование драйвера ODBC и не понимаете, что у вас есть эти тонкие «проблемы», ваше приложение очень быстро упадет на мертвые.
Вы беспокоитесь о том, чтобы быть надежным, но вы используете Delphi 7 и BDE? Получите Delphi 10, перейдите в FireDac и сделайте с ним. BDE-> FireDac на самом деле довольно безболезнен, даже проще, чем BDE-> ADO, я чувствую. Зачем переходить на XE2? Это кажется сумасшедшим - если вы собираетесь обновить, то обновите. Зачем останавливаться на полпути? –
В любом случае, по вашему вопросу, MS хочет, чтобы вы использовали ODBC в будущем. Компоненты BDE, ADO и FireDac все могут подключаться через ODBC, поэтому в зависимости от того, что вы используете, вам нужно будет переключиться на ODBC, если при обновлении за пределами SQL Server 2012, если это не так, как вы уже делаете. –
Потому что мы несколько лет назад купили XE2, но в конце концов не сделали этого назад и теперь хотим переключиться. –