Настройка источника данных ODBC для Informix

Для подключения к базе данных Informix из клиентов ArcGIS можно настроить имя источника данных ODBC или использовать строку подключения, содержащую информацию о хосте, сервере, порте и базе данных Informix.

Если вы хотите использовать источник данных ODBC, а не строку подключения, выполните шаги настройки источника данных, соответствующие операционной системе, в которой работает ваш клиент ArcGIS.

Настройка источника данных ODBC в Windows

Если ваши клиенты ArcGIS и Informix установлены на компьютере с ОС Windows, выполните для создания источника данных ODBC следующие шаги.

  1. Откроется диалоговое окно Windows .
  2. Щелкните закладку Системный DSN (System DSN) .
  3. Щелкните Добавить (Add) .

    Откроется диалоговое окно Создание нового источника данных (Create New Data Source) , отображающее список драйверов ODBC, которые установлены в вашей системе.

  4. Выберите IBM INFORMIX ODBC DRIVER и щелкните Готово (Finish) .

    Откроется диалоговое окно Informix ODBC Driver Setup .

  5. Создайте источник данных администратора, впечатав имя источника данных в строку Имя источника данных (Data Source Name) .
  6. Щелкните закладку Подключение (Connection Tab) , чтобы настроить связность подключения.
  7. Выберите имя сервера и базы данных из ниспадающих списков Имя сервера (Server Name) и Имя базы данных (Database Name) , соответственно.
  8. Выберите olsoctcp из ниспадающего списка Протокол (Protocol) .
  9. Введите имя хоста и имя сервиса в соответствующих тестовых строках.
  10. Введите действующее имя пользователя и пароль в текстовых строках и Пароль (Password) .
  11. Щелкните Применить&Проверить подключение (Apply&Test Connection) , чтобы убедиться, что параметры подключения установлены корректно.
  12. Если подключение будет успешно, удалите имя пользователя и пароль из текстовых строк Идентификатор пользователя (User Id) и Пароль (Password) , щелкните Применить (Apply) , затем переходите к следующему шагу. Если подключение не выполнено, проверьте правильность введенной информации и попробуйте еще раз.

  13. Щелкните закладку Параметры среды (Environment Tab) , чтобы настроить параметры среды.
  14. Установите локальные параметры, выполнив следующие действия:
    • Введите необходимую информацию в текстовые строки Региональные параметры клиента (Client Locale) и Региональные параметры базы данных (Database Locale) .
    • Введите необходимую информацию о местоположении в текстовую строку Местоположение клиента (Client Locale) и отметьте параметр Использовать региональные параметры базы данных сервера (Use Server Database Locale) .
  15. Параметр Cursor Behavior должен быть установлен на 1 – Preserve , так как ArcGIS требует, чтобы курсоры Informix оставались открытыми и активными в течении операции COMMIT базы данных.

    Установка параметра Cursor Behavior на 0 – Close может иметь нежелательный эффект в процессе загрузки и обновления данных.

  16. Нажмите кнопку Применить (Apply) .
  17. Щелкните OK чтобы закрыть диалоговое окно Informix ODBC Driver Setup .

Созданный вами источник данных появится в списке Системные источники данных (System Data Sources) на закладке Системные DSN (System DSN) диалогового окна Администратор источников данных ODBC (ODBC Data Source Administrator) . Вы можете обновить источники данных, щелкнув кнопку Настройка (Configure) в этом диалоговом окне.

Настройка источника данных ODBC в Linux

Вы можете настроить имя источника данных ODBC путем создания файла с именем odbc.ini на компьютере с ArcGIS и записи в файл необходимой для подключения информации.

Для работы с ArcGIS for Server поместите файл в директорию, к которой учетная запись администратора ArcGIS Server имеет, по меньшей мере, права доступа для чтения. Включите ссылку на этот файл и путь к нему в скрипт init_user_param.sh, чтобы ArcGIS for Server мог его найти.

В файле нужно указать следующие значения:

[] Database= Servername= CursorBehavior=1 UNICODE=UCS-2

Имейте в виду следующее:

  • Укажите вместо имя, которое вы хотите использовать. Для каждой базы данных или базы геоданных, к которой вы хотите подключаться, необходимо создать имя источника данных. Имя каждого источника данных в файле odbc.ini должно быть уникальным.
  • Укажите вместо имя базы данных Informix, для которой вы создаете имя источника данных. Имя базы данных может отличаться от имени источника данных.
  • Укажите вместо имя вашего сервера Informix, совпадающее с именем в файле INFORMIXSQLHOSTS.
  • Значение CursorBehavior должно быть 1, чтобы курсоры сохранялись вне границ транзакций.
  • В разделе ODBC файла odbc.ini должна быть строка UNICODE=UCS-2.

Ниже представлен пример файла odbc.ini с включенными в него источниками данных ODBC для трех баз геоданных: sde_base, sde_dev и sde_prod.

Database=sde_base Servername=myhost_base CursorBehavior=1 Database=sde_dev Servername=myhost_dev CursorBehavior=1 Database=sde_prod Servername=myhost_prod CursorBehavior=1 UNICODE=UCS-2

Тема нашего сегодняшнего разговора - ODBC. Если вы хоть раз писали СУБД (системы управления базами данных), то вам, наверное, знакома эта аббревиатура. Расшифровывается ODBC как Open DataBase Connectivity (вольный перевод - открытая система связи с базами данных). Open (открытая) в данном случае означает "расширяемая", "легко наращиваемая", "открытая для модификаций". Вы сами это поймете, если посмотрите на архитектуру построения ODBC:

Как легко заметить, она действительно легко наращиваемая. Для добавления нового типа БД нужно лишь написать драйвер и зарегистрировать его. Еще одно преимущество, вытекающее из такого построения ODBC - пользовательское приложение общается с физической БД через менеджер драйверов, фактически ничего не зная о типе используемой БД (общение менеджера драйверов и самих драйверов более менее стандартно, так что с точки зрения пользователя все источники данных обладают практически одинаковыми свойствами). Таким образом, вы легко можете поменять физический тип базы данных, а приложение даже не узнает об этом (конечно, существуют исключения из-за особенностей поддержки языка SQL различными типами БД, но они несущественны).

Физически ODBC представляет собой набор динамических библиотек DLL, которые обслуживают подключение и работу с конкретным типом базы данных.При запросе на подключение к определенной, заранее описанной базе "активизируется" определенная DLL - драйвер этого типа БД. Обращение к определенной базе данных происходит по имени так называемого источника данных ODBC (или DSN - data source name). Можно представить DSN как своего рода объявление БД на данном компьютере, причем DSN может быть пользовательским, т.е. находится в области видимости только одного польователя, в сеансе которого был создан этот DSN, и системным, т.е. видимым всеми пользователями данного компьютера.

Управление источниками данных ODBC (да и вообще настройкой всей системы ODBC) осуществляется с помощью специальной программы - ODBC-администратора. Давайте разберем, где его можно найти в различных версиях Windows:

Windows 9х - сам исполняемый файл odbcad32.exe лежит в каталоге Windows\System. Запускать его можно напрямую либо через Панель управления (значок "Источники данных ODBC (32-бит)"). Если на компьютере установлен BDE, запустите администратор BDE и из меню Object выберите пункт ODBC Administrator.

Windows 2000 - исполняемый файл odbcad32.exe лежит в каталоге WinNT\System32, а запускать его можно через Панель управления -> Администрирование -> Источники данных ODBC. К сожалению, у меня нет возможности проверить, как с ODBC в NT3.51 / 4 - не думаю, что там ребята из Microsoft сильно его спрятали.

Почему ODBC?

Ведь есть же BDE, скажете вы. Да, возможно вы правы. Однако здесь есть "но". У обоих движков есть свои преимущества и недостатки. ODBC намного лучше работает с "родными, от Microsoft" источниками данных продуктов Microsoft Office - типа Access, Excel, MS SQL Server (вообще-то из-за Access я и затеял всю эту писанину). Кроме того, в стандартный дистрибутив BDE, который можно на каждом шагу найти в Интернете, я что-то ни разу не встречал SQL Links, впрочем, как я ни разу не встречал и отдельного дистрибутива SQL Links. А именно после установки SQL Links в BDE появлется возможность создавать алиасы к Access, MS SQL Server, Oracle и др. типам баз данных. Устанавливать же полную версию C++Builder или Delphi на компьютер пользователя может не каждый. А ODBC на "голой" машине уже содержит драйверы Access, Excel, FoxPro и SQL Server. В общем, для общего развития не помешает освоить и ODBC, тем более что access"овские базы, с которыми мы будем работать через ODBC, очень надежны (не в пример стандартным BDE"шным paradox"овым, у которых то и дело сыпятся индексы, а про такое поле как счетчик я вообще молчу), практически на любом компьютере пользователя установлен Office, что позволяет вносить коррективы "на месте", да и удобство всей базы в одном файле тоже иногда сказывается.

Фнукции, с которыми нам придется работать

Естественно, я не буду рассказывать обо всех функциях, с помощью которых можно сделать с ODBC все, что угодно. Поверьте, их очень много. Нам же для нашей практической задачи достаточно будет всего четырех:

1. Функция SQLDataSources возвращает список всех источников данных ODBC.

RETCODE SQLDataSources(HENV hEnv, UWORD fDirection, UCHAR * szDSN, SWORD cbDSNMax, SWORD *pcbDSN, UCHAR * szDescription, SWORD cbDescriptionMax, SWORD * pcbDescription);

  • hEnv - хэндл, возвращаемый функцией SQLAllocEnv();
  • fDirection - задает режим работы. Может принимать значения SQL_FETCH_FIRST - вернуть первую запись и SQL_FETCH_NEXT - вернуть следующую запись. Логика работы аналогична функциям FindFirst и FindNext (помните DOS?);
  • szDSN - указатель на буфер длиной не менее cbDSNMax, куда будет записано имя источника данных;
  • cbDSNMax - длина буфера szDSN;
  • pcbDSN - указатель на целое, куда записывается реальная длина (не включая завершающий \0) принятого имени источника данных;
  • szDescription - указатель на буфер длиной как минимум 255 символов, куда запистывается описание принятого источника данных;
  • cbDescriptionMax - длина буфера szDescription;
  • pcbDescripton - указатель на целое, куда записывается реальная длина описания источника данных.

2. Функция SQLConfigDataSources добавляет, изменяет или удаляет указанный источник данных.

BOOL SQLConfigDataSources(HWND hwndParent, WORD fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes)

  • hwndParent - хэндл родительского окна. Если не равен NULL, отображается стандартный для данного типа источника данных диалог настройки.
  • fRequest - тип запрашиваемой операции. Может принимать следующие значения:
    • ODBC_ADD_DSN (ODBC_ADD_SYS_DSN) - запрос на создание нового пользовательского (системного) источника данных;
    • ODBC_CONFIG_DSN (ODBC_CONFIG_SYS_DSN) - запрос на изменение существующего пользовательского (системного) источника данных;
    • ODBC_REMOVE_DSN (ODBC_REMOVE_SYS_DSN) - удаление пользовательского (системного) источника данных.
  • lpszDriver - указатель на строку, содержащую имя драйвера, ассоциированного с конкретным типом БД;
  • lpszAttributes - указатель на строку атрибутов в форме ключевое слово - значение. Каждая такая пара должна заканчиваться символом \0, в конце строки атрибутов должен стоять двойной символ \0.

Приведем несколько примеров строки атрибутов, чтобы вам было понятно, что это такое:

"DSN=MySource\0UID=MyLogin\0PWD=MyPass" - источник данных с именем MySource, логин - MyLogin, пароль - MyPass

Каждый драйвер "понимает" свои ключевые слова, чаще всего применяются:

PWD - пароль UID - логин DSN - имя источника данных DATABASE - имя базы данных SERVER - имя сервера, на котором находится база данных

Для баз данных Microsoft Access для указания имени БД вместо DATABASE используется ключевое слово DBQ.

3. Функция SQLAllocEnv создает новый хэндл для использования в других функциях и инициализирует интерфейс для работы с ODBC

RETCODE SQLAlocEnv(HENV * hEnv)

hEnv - указатель на переменную, которая будет хранить созданный хэндл в случае удачного выполнения функции

4. Функция SQLFreeEnv удаляет заданный хэндл и освобождает всю память, ассоциированную с ним.

RETCODE SQLFreeEnv(HENV hEnv)

  • hEnv - хэндл, который нужно удалить

Исходный код

Сначала несколько замечаний. В C++Builder есть заголовочные файлы для работы с ODBC. Нам нужно два из них - odbcinst.h и sql.h. Добавьте строки

#include #include

в начало вашего файла. Реализация функций, описанных в этих файлах, находится в нескольких DLL, лежащих в каталоге Windows\System (или WinNT\System32). В наших примерах будут использоваться две такие DLL, а именно odbc32.dll и odbccp32.dll. Чтобы подключить их к проекту, нужно проделать следующие шаги:

1. Запускаем любой досовский файл-менеджер или командную строку Windows и переходим в каталог Windows\System (WinNT\System32) и находим эти две библиотеки.

2. Если каталог BIN С++Builder"а прописан в переменной окружения PATH, просто набираем

C:\windows\system\> implib odbc32.lib odbc32.dll

иначе набираем полностью путь к файлу implib.exe, либо копируем его в каталог, прописанный в PATH.

3. То же самое проделываем с odbccp32.dll:

C:\windows\system\> implib odbccp32.lib odbccp32.dll

4 . Полученные.lib - файлы копируем в каталог с проектом

5 . Из меню Project выбираем пункт Add to Project... и поочередно добавляем odbc32.lib и odbccp32.lib.

Все, теперь система сама загрузит эти DLL во время запуска программы.

При мер 1: Получаем список уже созданных источников данных ODBC.

Const short SQL_MAX_DSN_LENGTH=255; UCHAR szDSN[ SQL_MAX_DSN_LENGTH+1 ]; UCHAR szDescription[ 256 ]; short wDSNLen; short wDesLen; int retCode; SQLHENV hEnv=NULL; AnsiString DSNName; SQLAllocEnv(&hEnv); retCode = SQLDataSources(hEnv, SQL_FETCH_FIRST, szDSN, SQL_MAX_DSN_LENGTH+1, &wDSNLen, szDescription, 256, &wDesLen); while(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { DSNName = (AnsiString)((char *)szDSN); // -- получили имя DSN в переменной DSNName retCode = SQLDataSources(hEnv, SQL_FETCH_NEXT, szDSN, SQL_MAX_DSN_LENGTH+1, &wDSNLen, szDescription, 256, &wDesLen); } SQLFreeEnv(hEnv);

Этот фрагмент кода просто перебирает все уже созданные источники данных. В первой строке фрагмента после объявления переменных создается хэндл текущего сеанса работы с ODBC, затем выбирается первое имя DSN. Если первое имя успешно прочитано (retCode содержит константу SQL_SUCCESS), то в цикле выбирается следующий DSN и т.д. до тех пор, пока не будет прочитан последний DSN. Если на место комментария вставить код (ListBox1 -> Items -> Add(DSNName)), добавляющий прочитанное имя в ListBox, например, то вы сможете просмотреть весь этот список. А если на место комментария вставить что-нибудь типа

If (DSNName=="OurDSN") ...

то мы проверим, сможет ли наша программа работать нормально.

Пример 2: Создаем новый источник данных.

В этом примере вы узнаете, как создать системный DSN для базы данных Access. Предположим, файл с БД лежит в том же каталоге, что и программа, а его имя - db1.mdb.

#include WORD fRequest = ODBC_ADD_SYS_DSN; UCHAR lpszDriver = "Microsoft Access Driver (*.mdb)"; UCHAR lpszAttributes = "DSN=c2a;DBQ="; bool retCode; AnsiString CurDir; CurDir = GetCurrentDir(); StrCat(lpszAttributes, CurDir.c_str()); StrCat(lpszAttributes, "\\db1.mdb"); retCode = SQLConfigDataSource(NULL, fRequest, lpszDriver, lpszAttributes); if (retCode == true) Application -> MessageBox("DSN успешно создан", "Сообщение", MB_OK); else { Application -> MessageBox("Произошла ошибка во время создания DSN", "Ошибка", MB_OK); }

Как видите, здесь уже не нужны хэндлы и код достаточно ясный. В первых трех строках - дописываем в строку атрибутов путь к файлу БД. Затем собственно создаем источник. Обработка ошибок тривиальна.

Важное замечание: При создании DSN если такое имя уже есть, то не возвращается ошибка, а создается DSN с текущими параметрами.

Пример 3: Как все это собрать воедино и использовать в программе

Здесь кода не будет, здесь будет описание. Итак, у нас есть программа, которой нужно "присоединиться" к базе Microsoft Access, лежащей совсем рядом, в текущем каталоге. На машине пользователя нам не нужно ничего, кроме стандартного набора bpl и BDE. Но - теперь не нужны SQL Links, можно использовать, например, Install Shield, можно взять отдельный дистрибутив BDE. Поехали:

1. На основную форму проекта кидаем компоненту TDatabase. Устанавливаем ее свойства: LoginPrompt - false, DatabaseName - dbMain, AliasName - c2a (имя источника данных ODBC). Во всех компонентах TQuery или TTable свойство Database Name будет равно dbMain. Конечно, можно не использовать компоненту TDatabase, а в TQuery или TTable прямо указывать имя источника данных ODBC, но представьте, если вы написаи проект формочек на двадцать-тридцать, а потом решили, что имя источника "MySuperDSN" не в полной мере отражает всю вашу крутость:-) Изменять свойство у полусотни компонент - очень муторное занятие, поверьте.

2. В конструкторе основной формы прописываем код примера №1, вставляя на место комментария следующий код:

If (t == "c2a") { Exists = true; break; }

а после цикла - такой фрагмент:

If (!Exists) { NewDSN(); }

3. Функция NewDSN() полностью повторяет код примера №2.

Теперь при первом запуске программы будет создан источник данных ODBC Microsoft Access с именем c2a, ссылающийся на файл db1.mdb, лежащий в том же каталоге, что и программа.

4. На всякий непредвиденный случай (если вы переместили программу в другой каталог, поменялась буква диска или сетевое имя, где лежит база данных) можно в программе предусмотреть немедленное перезаписывание DSN по горячей клавише, что-то типа такого:

Void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Shift.Contains(ssAlt) && Shift.Contains(ssCtrl)) if (Key==VK_F1) { if (Application -> MessageBox("Перезаписать DSN?", "Вопрос",MB_YESNO)==IDYES) { NewDSN(); } } }

Здесь для перезаписи DSN используется комбинация Alt-Ctrl-F1

Open Database Connectivity (ODBC) - это протокол, используемый для подключения базы данных Microsoft Access к внешнему источнику данных, например Microsoft SQL Server. В этой статье содержатся общие сведения об источниках данных ODBC, способах их создания и подключения к ним с помощью Microsoft Access. Действия, которые требуется выполнить, зависят от используемых баз данных и драйверов ODBC.

В этой статье

Сведения об источниках данных ODBC

Источник данных - это источник, который содержит данные и сведения о подключении, необходимые для доступа к этим данным. Источником данных может быть сервер SQL Server, реляционная СУБД Oracle, электронная таблица или текстовый файл. Сведения о подключении могут включать расположение сервера, имя базы данных, идентификатор входа, пароль и различные параметры драйвера ODBC, описывающие способ подключения к источнику данных. Эти сведения можно получить у администратора базы данных, к которой нужно подключиться.

В архитектуре ODBC приложения (такие как Access) подключаются к диспетчеру драйверов ODBC, который, в свою очередь, использует конкретный драйвер ODBC (например, Microsoft SQL ODBC) для подключения к источнику данных. В Access источники данных ODBC используются для подключения к внешним источникам данных, у которых нет встроенных драйверов.

Чтобы подключиться к такому источнику данных, выполните указанные ниже действия.

    Установите соответствующий драйвер ODBC на компьютере с источником данных.

    Определите имя источника данных (DSN) с помощью программы Администратор источников данных ODBC , чтобы сохранить сведения о подключении в реестре Microsoft Windows или DSN-файле, либо с помощью строки подключения в коде Visual Basic, чтобы передать сведения о подключении непосредственно диспетчеру драйверов ODBC.

Машинные источники данных

Машинные источники данных хранят сведения о подключении в реестре Windows на определенном компьютере. Такие источники данных можно использовать только на компьютере, на котором они определены. Есть два типа машинных источников данных: пользовательские и системные. Пользовательские источники данных доступны и отображаются только для текущего пользователя. Системные источники данных могут использовать все пользователи компьютера. Они отображаются для всех этих пользователей и системных служб. Машинные источники данных особенно полезны, когда требуется обеспечить дополнительную защиту, поскольку машинный источник данных могут просматривать только вошедшие в систему пользователи. Кроме того, такой источник нельзя удаленно скопировать на другой компьютер.

Файловые источники данных

Файловые источники данных (также называемые DSN-файлами) хранят сведения о подключении в текстовых файлах, а не в реестре Windows, и, как правило, более гибки в использовании, чем машинные источники данных. Например, файловый источник данных можно скопировать на любой компьютер с подходящим драйвером ODBC, чтобы обеспечить в приложении точность и согласованность сведений о подключении ко всем используемым компьютерам. Кроме того, можно поместить файловый источник данных на отдельный сервер, сделать его общим для нескольких компьютеров в сети и легко управлять централизованными сведениями о подключении.

Некоторые файловые источники данных нельзя сделать общими. Такие источники располагаются на отдельном компьютере и указывают на машинный источник данных. Их можно применять для доступа к существующим машинным источникам данных из файловых источников данных.

Строки подключения

В модуле можно определить форматированную строку со сведениями о подключении. Строка подключения передает сведения о подключении непосредственно диспетчеру драйверов ODBC. Это помогает упростить приложение, устраняя необходимость создания DSN администратором или пользователем перед использованием базы данных.

Дополнительные сведения об интерфейсе ODBC см. в разделе MSDN Справочник программиста по ODBC .

Добавление источника данных ODBC

Прежде чем продолжить, установите подходящий драйвер ODBC для источника данных, к которому нужно подключиться.

Примечание: Для добавления или настройки источника данных ODBC необходимо входить в группу администраторов локального компьютера.

Для получения дополнительных сведений об отдельных параметрах нажмите кнопку Справка в диалоговом окне ODBC.

ODBC предназначен для соединения приложения, выполняемого на рабо­чей станции, с сервером и выполнения процедур, связанных с получением данных. Основными компонентами ODBC являются Администратор и драй­вер. Администратор ODBC устанавливает соединение с указанным пользова­телем внешним источником данных, поддерживает связь между приложени­ем и сервером, обеспечивает приложение информацией и по мере необходимости загружает драйвер. Драйвер управляет взаимодействием при­ложения с сервером, переводит SQL-выражения приложения на диалект ис­точника данных, перехватывает ошибки. Драйверы ODBC содержатся в ди­намически подключаемых библиотеках (DLL).

Чтобы из приложения Access иметь доступ к базам данных SQL, необходимо установить соответствующий драйвер ODBC. Ряд драйверов ODBC поставляется вместе с Access (в том числе драйвер Microsoft SQL Server), и они могут быть установлены уже при инсталляции Access. Дополнительные драйверы ODBC, поддерживающие другие форматы данных, могут быть приобретены у независимых поставщиков. Microsoft Access требует 32-разрядных драйверов ODBC, совместимых с протоколом ODBC уровня 1. Приобретаемые драйверы должны быть проверены в работе с Microsoft Access.

Для того, чтобы посмотреть, установлен ли нужный драйвер на компьютере, выбирают Пуск, Настройка, Панель управления, Администрирование, Источники данных (ODBC).

В открывшемсяокне ODBC Data Source Administrator на вкладкеDrivers (Драйверы) будут представлены все установленные в системе драйверы ODBC.

Если драйверы ODBC установлены, то при выполнении операции с внешними данными становится доступным элементБазы данных ODBC (ODBC Databases()), который и позволяет перейти к процедуре подключения к внешнему источнику данных. Этот элемент отображается в спискеТип файла (Save as Type) при импорте в диалоговом окнеИмпорт (Import) , а при связи с таблицей - в окне Связь (Link) .

Для того чтобы получить доступ к базе данных SQL-сервера, необходимо определить источник данных. Источник данных ODBC - это термин, ис­пользуемый для ссылки на внешнюю базу данных. Для каждой базы данных сервера, с которой работает Access, должен быть создан источник данных. К источникам данных обращаются по именам. Создать источники данных позволяет программа Администратор ODBC. Каждый драйвер ODBC предъ­являет собственные требования к созданию и настройке источников данных.

Администратор ODBC позволяет настраивать и использовать три типа ис­точников данных:

источник данных типаUser DSN - пользовательский источник данных. Такие источники данных могут быть использованы только одним пользо­вателем, работающем на данном компьютере;

системный источник данныхSystem DSN. Он предназначен для всех поль­зователей и системных служб на данном компьютере;

файловый источник данныхFile DSN. Предназначен для совместной ра­боты многих пользователей разных компьютеров сети, на которых установлены одинаковые драйверы, для получения доступа к базе данных. При определении этого источника данных, в отличии от других, указывается файл, в котором сохраняется описание источника. Файл имеет расширение.dsn. Этот файл должен быть доступен на всех компьютерах сети, пользователи которых имеют к нему доступ.

Рассмотрим создание источника данных на примере User DSN – пользовательского источника данных. Процедура создания источников данных других типов практически не имеет отличий и состоит в следующем.

Активизируют диалоговое окно ODBS Data Source Administrator и выбирают в нем вкладку User DSN. Первоначально, в нем нет источников данных для SQL Server. Для создания нового источника данных щелкают по кнопке Add и в окне Create New Data Source выбирают драйвер SQL Server, для которого создается источник.

После выбора драйвера и нажатия кнопки Готово к работе подключается мастер создания нового источника данных. В окне мастера Create a New Data Source to SQL Server:

вводят имя (Name) источника данных, которое будет использоваться при определении источника данных во время подключения к базе данных сервера;

вводят описание(Description), которое поможет определить назначение базы данных, используемой в качестве источника данных;

выбирают сервер (Server), с которым нужно соединиться для получения доступа к базе данных.

В следующем диалоговом окне выбирают способ проверки прав пользователя на доступ к SQL-серверу при подключении к нему. К SQL Server можно подключаться, используя два режима регистрации:

по доверительному соединению , при котором пользователь, успешно зарегистрировавшийся в сети Windows NT и представленный в списках пользователей сервера, не проверяется дополнительно. Сервер доверяет результатам этой проверки. Этот режим задается при выборе строкиWith Windows NT authentication using the network login ID. В дальнейшем произ­водится только проверка на право выполнения тех или иных работ с объ­ектами баз данных;

путем проверки самим SQL Server идентификатора пользователя и пароля, передаваемых непосредственно серверу. Этот режим задают при выборе строкиWith SQL Server authentication using a login ID and password entered by the user. Результаты проверки, выполненной Windows NT, не учитыва­ются. Пользователь должен быть известен серверу под этим именем.

Идентификатор пользователя и пароль должны быть заранее определены на SQL-сервере администратором и обеспечивают первый уровень зашиты данных от несанкционированного доступа. Далее мастер позволяет ввести имя базы данных сервера, которая будет использоваться по умолчанию при использовании создаваемого источника данных.

После установки в следующем окне еще ряда параметров мастер завершает создание нового источника данных выводом окнаODBC Microsoft SQL Server Setup с информацией о его параметрах.

Нажав кнопкуTest Data Source, можно произвести тестирование нового ис­точника данных. Результаты тестирования отобразятся в соответствующем окне.

Выполнив рассмотренные шаги по созданию источника данных и возвратившись в окноODBC Data Source Administrator, в списке на вкладке User DSN увидят строку с именем нового источника данных.

На этом создание источника данных завершается. Теперь, указав лишь имя источника данных, можно подключиться к конкретному SQL-серверу данных.

Для просмотра или изменения параметров существующего источника данных выбирают его имя в спискеUser Data Sources и нажимают кнопкуConfigure (Настройка). Выполняют необходимые действия по изменению источника в диалоговых окнах, которые в точности повторяют рассмотренные выше.

Для удаления источника данных выбирают его имя в спискеUser Sources и нажимают кнопкуRemove (Удалить).

В каждом диалоговом окне Администратора ODBC имеется кнопкаСправка ,нажав которую, можно получить дополнительные сведения по каждому параметру источника данных.

Связь с таблицами баз данных SQL Server

Из приложений, созданных в Access, можно связаться с таблицами базы данных на сервере. Связанные таблицы, оставаясь на сервере в формате источника, отображаются в окне базы данных Access. Эти таблицы могут быть использованы наряду с локальными таблицами базы дан­ных Access при создании запросов, форм, отчетов привычными диалоговыми средствами Access. Связанные таблицы можно просмотреть и в режиме конст­руктора, однако, никакие изменения структуры таблицы невозможны.

Для создания связи с внешними таблицами предназначена команда Файл/Внешние данные/Связь с таблицами (File/Get External Data/Link Tables). При выполнении этой команды открывается окноСвязь (Link), в котором для создания связи с таблицами из внешних баз данных ODBC, нужно выбрать в полеТип файлов строкуODBC Databases ().

В следующем окне выбирается источник данных ODBC, обеспечивающий подключение к нужному серверу и базе данных. В окне регистрации пользователя на сервере вводится пароль. Получив доступ к базе данных сервера, в окнеСвязь с таблицами можно выбрать таблицы, которые будут использоваться в работе как связанные.

После выбора таблиц и выполнения процедуры связывания, выбранные таблицы сервера будут отображены в списке таблиц окна базы данных Access. Для обозначения связанных таблиц и таблиц, хранящихся в текущей базе данных, используются разные значки. Если удалить связанную таблицу, удаляется связь с таблицей, но не сама внешняя таблица на SQL сервере.

При создании запросов, форм, отчетов связанные таблицы могут использоваться наряду с таблицами локальной базы данных. В окне добавления таблиц в запрос связанные таблицы отображаются наряду с локальными таблицами. Связанные таблицы могут так же, как локальные отображаться в режиме таблицы и в режиме конструктора. Однако нельзя модифицировать структуру связанной таблицы.

Если связанные таблицы включены в схему БД Access и между ними уста­новлены связи, то в режиме таблицы для записи главной таблицы отобра­жаются записи подчиненной. По умолчанию в свойствах связан­ной таблицы, открываемых в режиме конструктора, строкаИмя подтаблицы имеет значение[Авто]. Для разрыва связи с таблицей на сервере достаточно удалить ее, как удаляют другую таблицу локальной базы данных, выполнив, командуПравка (Edit/Delete) в окне базы данных. При этом таблица на сервере удалена не будет. Будет выведено сообщение о разрыве связи.

Все связанные таблицы сохраняются в базе данных и после ее закрытия. При следующем открытии в базе данных отображаются связанные таблицы, выполнять процедуру включения связанных таблиц не требуется. Очевидно, что работу со связанными таблицами можно выполнять, только если сервер доступен. Сведения об источниках данных для связанной таблицы сохраняются в общих свойствах таблицы в строкеОписание. Свойства можно просмотреть в режиме конструктора таблицы.

Все связанные таблицы и параметры их источников данных можно увидеть в окне Диспетчер связанных таблиц (Linked Tables Manager), которое откры­вается по одноименной команде, представленной в окнеСлужебные про­граммы (Database Utilites), вызываемом командойСервис|Служебные про­граммы (Tools/Database Utilites). В этом окне можно обновить связь, если изменилось местоположение или другие параметры источника данных.