Books and articles about SQL Rambler's Top100 Сменить язык на: Русский 28 March 2024 14:44:26


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Начинаем работать с SQL Native Client

Chris Lee (оригинал: Getting started with SQL Native Client)
Перевод Моисеенко С.И.

Как Acey Bunch уже объяснил в апрельском блоге, SQL Native Client удовлетворяет потребностям тех разработчиков, которые хотят использовать новые возможности SQL Server 2005 из приложений, работающих через ADO, ODBC и OLE DB. Для тех из Вас, кто еще не обращался к SQL Native Client, мы начинаем изучение его использования. Хорошая новость состоит в том, что это очень просто. Мы реализовали очень небольшое количество новых интерфейсов для OleDb, однако самые новые функциональные возможности реализованы через атрибуты подключения или операторы, которые Вы уже знаете, как использовать.

Я начну с самого нижнего уровня и расскажу о том, как преобразовать существующие приложения для использования SQL Native Client. Здесь имеется три стадии: во-первых, выполнение существующего кода; во-вторых, подготовка к эксплуатации новых возможностей; в-третьих, использование новых возможностей. В этом сообщении я ограничусь первыми двумя из них. Третья стадия будет изложена в моем следующем сообщении, где, в частности, речь пойдет об использовании множественных активных результирующих наборов (МАРС). Если на Вашей машине установлен SQL Server 2005, то установлен и SQL Native Client. В противном случае, а SQLNCLI.msi включен в дистрибутив 2005 Server SQL, просто скопируйте этот файл с дистрибутивного носителя в папку \Setup.

Стадия 1: Выполнение существующего кода

Для ADO Вы меняете строку подключения на использование SQLNCLI в качестве провайдера и добавляете ключевое слово для обеспечения совместимости с типами данных SQL Server 2000 следующим образом:

"…; Provider=SQLOLEDB; …"

становится

"…;Provider=SQLNCLI;DataTypeCompatibility=80;…"

ADO представляет собой общий API доступа к данным, который является теперь частью платформы Windows, и не частью SQL Native Client, поэтому ADO на вашей машине не изменилась при установке SQL Native Client. Следовательно, вообще говоря, не требуется ни каких-либо специфических знаний SQL Server, ни новых типов данных, добавленных в SQL Server 2005. Поэтому, используя ADO, мы должны дать указание SQL Native Client согласовать новые типы данных SQL Server 2005 с типами данных, которые понимает ADO. Я объясню, как это делается в более поздней статье, а пока лишь отмечаю зачем это нужно и что это не мешает нам использовать другие новые возможности SQL Server 2005.

Для ODBC Вы меняете имя драйвера 'SQL Server' на 'SQL Native Client'. Если ваше приложение использует DSN, Вы должны создать новый DSN и выбрать 'SQL Native Client' в качестве драйвера. Если Вы используете подключение без DSN, просто обновите строку подключения в вашем приложении.

Для OLE DB Вы просто меняете имя провайдера 'SQLOLEDB' на 'SQLNCLI', или используете CLSID_SQLNCLI вместо CLSID_SQLOLEDB.

Стадия 2: Подготовка к использованию новых возможностей

Для ADO: Если Вы используете ADO, Вы хорошо подготовлены.

Приложениям ODBC и OLE DB необходимо использовать sqlncli.h, чтобы получить доступ к новым возможностям. Вы также должны использовать Visual Studio.Net. Sqlncli.h - новый заголовочный файл, общий как для ODBC, так и для OLE DB, который обычно устанавливается в C:\Program Files\Microsoft SQL Server\90\SDK\Include.

Для ODBC sqlncli.h является прямой заменой odbcss.h. Если вы используете API-вызовы bcp наряду с вызовами ODBC, тогда вам потребуется привязка к sqlncli.lib вместо odbcbcp.lib.

Для OLE DB Вы можете добавить #include для sqlncli.h после #include для sqloledb.h, если Вам необходимо использование как старого, так и нового провайдеров (sqlncli.h не содержит CLSID для SQLOLEDB), или же Вы можете заменить #include для sqloledb.h на #include для sqlncli.h, если Вы не нуждаетесь в старых CLSID. Если требуются оба заголовка, #include для sqloledb.h должен следовать первым.

Так как sqlncli содержит имена как для ODBC, так и OLE DB, есть шанс конфликта имен с вашими собственными именами и именем, определенным для использования 'другим' API (тем, который Вы не собирались использовать). В этом случае Вы можете добавить #define, чтобы избавиться от имен не нужного вам API. Если Вы используете OLE DB, напишите #define _SQLNCLI_OLEDB_ , а если - ODBC - #define _SQLNCLI_ODBC_.

Следующие шаги …

Теперь Вы готовы начать использовать новые возможности SQL Server 2005, доступные через SQL Native Client. Познакомьтесь с деталями программирования SQL Native Client в руководстве SQL Server Programming Refernce в BOL. Документация на SQL Native Client была недавно значительно обновлена, поэтому Вам следует использовать последнюю доступную версию. Большинство новых возможностей очень просты в программировании и управляются свойствами подключения или операторов. В своем следующем сообщении я рассмотрю множественные активные результирующие наборы (МАРС).

27 сентября 2006

На главную страницу

Print  Версия для печати


Usage of any materials of this site is possible
only under condition of mandatory allocation of the direct link to a site
http://www.sqlbooks.ru
on each page where used materials are placed.

 Main   Articles    Books 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.