Разработка приложений баз данных для СУБД Sybase SQL Anywhere

         

Использование файлов, хранящих параметры соединения


Использование файлов, хранящих параметры соединения является одной из возможностью установления соединения с базами данных. В качестве примера опять воспользуемся утилитой SQL Central.

Как видно из рис. 8, при установлении соединения с базой данных в диалоговое окно требуется вводить довольно много информации. Однако эти данные можно ввести один раз, запомнить в специальном файле и затем просто использовать этот файл. Такие файлы называются профайлами (connection profiles). Для того, чтобы воспользоваться этими файлами необходимо выполнить команду Tools|Connection profiles. В результате этого появляется окно Connection Profiles со списком имеющихся профайлов (рис. 11).

Рис. 11. Окно Сonnection Profiles со списком имеющихся профайлов

Для создания нового профайла следует нажать на кнопку New. Вследствие этого на экране появляется еще одно окно - окно Create New Profile (рис. 12).

Рис. 12. Окно Create New Profile

После того как вы введете название профайла Biblia_profile и щелкните мышью по кнопке OK. Тогда на экране появится полное окно параметров соединения SQL Anywhere Logon (). Заполним его теми же данными и щелкнем по кнопке OK. Вследствие проведенных действий список, профайлов пополнится еще одним элементом - Biblia_profile (рис. 13).

Рис. 13. Окно Сonnection Profiles с вновь созданным профайлом

Для того, чтобы воспользоваться одним из профайлов для установления соединения, необходимо выделить мышью требуемый профайл. Далее следует щелкнуть мышкой по кнопке Connect.. Тогда в случае правильно установленных значений параметров соединения произойдет подключение к базе данных ().

С помощью кнопок Edit или Remove вы можете отредактировать или удалить любой профайл. Кнопка Set Startup предоставляет вам возможность автоматического подключения базы данных при помощи профайла при запуске SQL Central. Для этого следует установить признак Use on Startup в состояние Yes. , что и сделано для профайла Biblia_profile. Задание значений для данного признака (Yes/No) осуществляется кнопкой Set Startup.

Таким образом, в результате создания профайла Biblia_profile при очередном использовании SQL Central автоматически будет подключена база данных Biblia ().

ПРИМЕЧАНИЕ

При создании профайла вам предлагается заполнить поля окна SQL Anywhere Logon (), в том числе UseID и Password. Если вы заполните их, тогда другие пользователи без особых проблем смогут узнать ваше пользовательские имя и пароль. Последствия этого не трудно предугадать. В связи с этим имеет смысл оставлять данные поля пустыми. При установление соединения посредством такого профайла будет произведена неудачная попытка установления соединения. В результате на экран будет выдано сообщение об ошибке о неверном имени пользователя или пароля и будет предложено ввести их ззаново. После заполнения полей UseID и Password осуществите еще одну попытку, которая на этот раз должна оказаться успешной. Такая процедура несколько увеличит время соединения с базой данных, но усложнит возможность раскрытия вашего имени и пароля.



Параметры соединения и способы их передачи серверу


Перечень параметров соединения и их типы данных их значений представлены в табл. 2.

Таблица 2. Перечень параметров соединений

Полное
наименование
параметраСокращенное
наименование
параметраТип
данных
параметра

Agent Agent Строка (Client или Engine)
AutoStop AutoStop YES или NO
ConnectionName CON Строка
DatabaseFile DBF Строка
DatabaseName DBN Строка
DatabaseSwitches DBS Строка
DataSourceName DSN Строка
EngineName ENG Строка
Integrated   YES или NO
Password PWD Строка
Start Start Строка
Userid UID Строка

Поясним назначение этих параметров.

Agent . Этот параметр используется для разрешения противоречий когда на одной ЭВМ выполняется и локальный сервер и клиентская компонента сетевого варианта СУБД. Чтобы указать, что происходит подключение к локальному серверу необходимо задать Agent=engine. В случае обращения к клиентской компоненте следует определить Agent=client.

AutoStop - признак автоматического закрытия базы данных. Если AutoStop=YES, то в случае когда с базой данных произошел разрыв последнего соединения происходит автоматическое закрытие базы данных на сервере. Применение рассматриваемого параметра имеет смысл только при установлении соединения с еще не открытой базой данных. В противном случае действует значение этого параметра определенное в первом среди всех установленных соединений.

ConnectionName - имя соединения. Позволяет различать соединения установленные одним и тем же пользователем к одной и той же базе данных.

DatabaseFile - имя базового файла базы данных, с которой происходит соединение. Как и для предыдущего параметра, использование данного параметра необходимо при установлении соединения с еще не открытой базой данных.

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

DataSourceName - имя ODBC-источника данных. Данный параметр используется только СУБД с интерфейсом ODBC.

DatabaseSwitches - режимы использования базы данных. Он позволяет задавать, отличные от используемых по умолчанию, режимы использования баз данных. К их числу относятся определение псевдонима для имени базы данных (-v name), обнуление журнала изменений базы данных после каждой точки фиксации (-m) и запись в этот журнал старых значений полей при выполнении оператора UPDATE (-v). Данный параметр действует только на открываемую базу данных.

EngineName - имя локального или удаленного сервера базы данных. Этот параметр требуется только в том случае если работает несколько серверов баз данных.

Integrated - признак совместного использования средств идентификации пользователей СУБД и операционной системой или вычислительной сетью. Если Integrated=YES, то одни и то же имя пользователя и пароль используются для доступа ко этим системам. Применяется только для локального и удаленного сервера в операционной системе Windows NT, а также для клиентов в Windows 95/98 и WindowsNT.

Password - пароль пользователя. При установлении соединения пароль вводится всегда.

Start - режимы функционирования сервера баз данных. Всего таких режимов более 30. Они позволяют установить перечень разрешенных к использованию сервером сетевых протоколов (-x net_list), блокировать клавиатуру сервера (-l password), задать размер используемой сервером кэш-памяти (-c cache-size) и т.д.

Userid - имя пользователя. Как и пароль, всегда должен использоваться при подключении к базе данных.

При установлении соединения нет необходимости использовать все параметры соединения. Исключение составляют только параметры Userid и Password, которые должны задаваться всегда. Использование параметров EngineName, DatabaseName и DatabaseFile определяется наличием одновременно функционирующих серверов и количеством открытых баз данных. Например, запущен только один сервер и открываемая база данных должна управляться этим сервером. Тогда нет необходимости указывать значение параметра EngineName. Если требуемая база данных уже открыта, то можно обойтись еще и без параметров DatabaseName и DatabaseFile. Такую аналогию можно продолжать и далее. Параметр DataSourceName необходим для приложений использующих интерфейс ODBC. Для остальных параметров определены значения по умолчанию. По этой причине, если нет необходимости, их значения можно не задавать.

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

через источники данных (Data Source) интерфейса ODBC; путем считывания значений параметров из диалогового окна соединения, предлагаемого для заполнения пользователю; посредством задания параметров соединения в командной строке; при помощи переменных окружения, определенных, например, в файле AUTOEXEC.BAT; использованием специальных файлов, хранящих параметры соединений; через фиксированный, встроенный в приложение, набор параметров.

Рассмотрим примеры установления соединения наиболее часто применяемыми способами.



Передача параметров соединения через источники данных ODBC


Интерфейс ODBC был разработан фирмой MicroSoft в качестве унифицированного средства для доступа к реляционным базам данных, управляемых различными СУБД. Для пользователей он представляется в виде совокупности функций и источников данных. Под источниками данных здесь подразумеваются объекты являющиеся связующим звеном между базами данных и их приложениями. Источники данных осуществляют взаимодействие с базами данных через ODBC-драйверы. Такие драйверы поставляются фирмами-разработчиками СУБД. Создание и настройка источников осуществляется пользователями, а интерфейсные функции предоставляет фирма MicroSoft. После настройки источника данных, его имя используется в приложениях в качестве псевдонима для обращения к соответствующей базе данных. Рассмотрим как создается источник данных для баз данных, управляемых СУБД SYBASE SQL Anywhere.

Интерфейсом ODBC можно воспользоваться только в том случае если на вашей ЭВМ установлен Администратор MicroSoft ODBC. О его наличии свидетельствуют пиктограммы 32bit ODBC или ODBC в Панели управления. Эти пиктограммы обозначают различные типы Администратора MicroSoft ODBC. Один из типов предназначен для организации взаимодействия баз данных с 16-разрядными приложениями, для другой - с 32-разрядными. Разрядность приложений в зависимости от типов Администратора для различных Windows-операционных систем представлена в табл. 3.

Таблица 3. Разрядность приложений в зависимости от типов Администратора ODBC

Пиктограмма\Операц. системаWindows 3.xWindows 95/98Windows NT

ODBC161632
32bit ODBC-32-

Для создания нового источника ODBC щелкните мышкой по пиктограмме 32bit ODBC или ODBC. Тогда на экране появится окно Администратора MicroSoft ODBC со списком уже имеющихся источников данных(рис. 14).

Рис. 14. Окно Администратора MicroSoft ODBC имеющихся источников данных

Чтобы добавить к существующим еще один источник данных щелкните мышью по кнопке Add. В результате этого вам будет предложено выбрать ODBC-драйвер (рис. 15).

Рис. 15. Выбор ODBC-драйвера Sybase SQL Anywhere 5.0




Так как мы создаем источник данных для СУБД SYBASE SQL Anywhere, то следует выбрать драйвер Sybase SQL Anywhere 5.0. Чтобы подтвердить сделанный выбор, щелкните мышкой по кнопке Готово. После этого вашему вниманию будет представлено диалоговое окно SQL Anywhere ODBC Configuration для задания характеристик создаваемого источника данных (рис. 16).



Рис. 16. Задание характеристик создаваемого ODBC-источника данных

В рассматриваемом диалоговом окне поле Data Source Name предназначено для определения названия источника данных. В поле Description может храниться краткий комментарий к создаваемому источнику данных. Области Connection Information и Database Startup практически полностью соответствуют полному окну параметров соединения утилиты SQL Central (). Исключение составляет реакция при щелке мыши по кнопке Options. При наступлении этого события открывается окно Startup Options (рис. 17).



Рис. 17. Диалоговое окно Startup Options

В данном окне поля Start Command, Database Switches и флажок Autostop Database предназначены для определения параметров DatabaseSwitches, Start и AutoStop, соответсвенно. Область Agent служит для задания значения одноименного параметра соединения. Поле Isolation Level не предназначено для параметров соединения. Оно служит для ввода значения параметра функционирования базы данных Isolation_level (уровня изолированности). Этот параметр характеризует степень обеспечения целостности данных при работе с базой данных в режиме коллективного доступа. Параметр Isolation_level может принимать значения 0, 1, 2 или 3. По умолчанию значение этого параметра равно 0.

Продолжим анализировать характеристики ODBC-драйвера (). Следует отметить, что ввод значений в поля User Id и Password не является обязательным. Более того это не желательно. Если имя и, особенно пароль, определены в источнике данных, то они могут быть беспрепятственно считаны другими пользователями. Это может привести к возможности несанкционированного доступа, а затем и к непредсказуемым последствиям. Если значения параметров соединений Userid и Password в источнике данных не заданы, тогда ввод их осуществляется при соединении с базой данных.

Рассмотрим область Additional Connection Options. Иногда при использовании источника данных возникает необходимость преобразования данных символьных типов из ANSI-кодировки (для Windows) в OEM-кодировку (для DOS) и обратно. Тип конвертора для этого случая задается в поле Translator Name. Выбор конвертора осуществляется при помощи кнопки Select.

Из видно, что источник данных Biblia предназначен для связи приложений пользователя Stepanov с , управляемой удаленным сервером Server_ste1. При использовании созданного источника данных будет производиться преобразования символов из ANSI-кодировки в OEM-кодировку и обратно.

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


Соединения при помощи диалогового окна


Характерными примерами подключения к базам данных через диалоговое окно соединения является организация этой процедуры в утилитах SQL Central и ISQL. Рассмотрим соединение с использованием такого окна на примере утилиты SQL Central. Для запуска SQL Central в среде Windows 95/98 или Windows NT 4.0 щелкните левой кнопкой мыши на кнопке Ione, затем выберите в появившемся меню пункт Программы. После этого следует в предлагаемом перечне программ указать на SYBASE SQL Anywhere и далее выбрать SQL Central и дважды щелкнуть левой кнопкой мыши. Если данная утилита запускается из Windows NT 3.51, то вам следует также использовать двойной щелчок левой кнопкой мыши по пиктограмме SQL Central в программной группе SYBASE SQL Anywhere. После этого на экране появляется главное окно утилиты (рис. 6).

Рис. 6. Главное окно утилиты SQL Central

Для установления соединения следует выполнить команду меню Tools|Connect или щелкнуть мышкой по кнопке, на которую указывает курсор (см. рис. 6). Если требуемая база данных открыта, то нет необходимости в передаче параметров EngineName. DatabaseName и DatabaseFile. В этом случае вышеуказанные утилиты предлагают пользователю заполнить поля сокращенного диалогового окна параметров соединения (рис. 7).

Рис. 7. Сокращенное диалоговое окно параметров соединения утилит SQL Central и ISQL

После ввода значений параметров Userid и Password необходимо щелкнуть левой клавишей мыши по кнопке OK. В случае отказа от соединения следует воспользоваться кнопкой Cancel.

ПРИМЕЧАНИЕ

В дальнейшем будем предполагать, что соединение с базаой данных Biblia осуществляется пользователем-администратором, имя которого Stepanov, а пароль - s.

Если необходимо задать значения и других параметров щелкните мышью по кнопке More>>. Тогда вместо сокращенного на экране появится полное окно параметров соединения. В необходимых случаях утилита SQL Central сразу использует полное диалоговое окно параметров соединения. Такое окно представлено на рис. 8.

Рис. 8. Полное диалоговое окно параметров соединения утилиты SQL Central




Поля данного окна предназначены для ввода значений соответствующих параметров соединений. Все эти поля заполняются вручную, а полное имя файла для поля Database File может также выбрано после использования кнопки Browse.

В рассматриваемом окне следует обратить на область Database Startup. В ней сосредоточена информация о подключаемой базе данных. Помимо имени базового файла, вы можете при помощи переключателя указать тип сервера (локальный или удаленный) будет управлять подсоединяемой базой данных. Если переключатель установлен в положении Local, то используется локальный сервер, если в положении Network, то - удаленный. При этом значения параметров соединения AutoStop, DatabaseSwitches и Start определяются по умолчанию.

Если возникает потребность в явном задании их значений, то переключатель должен быть установлен в положение Custom. Вследствие этого становится доступной кнопка Custom. После щелчка по ней мыши открывается диалоговое окно Custom Database Startup (рис. 9).



Рис. 9. Диалоговое окно Custom Database Startup

Содержимое поля Database Startup Command Line в случае использования локального сервера должно соответствовать следующему синтаксису:

SERVER [РЕЖ_БД ...] [РЕЖ_СЕРВ ...],

гдеSERVER - полный путь к файлу, представляющего компоненту SQL Anywhere Engine;
 РЕЖ_БД - необязательный параметр режим использования базы данных;
 РЕЖ_СЕРВ - необязательный параметр режим функционирования сервера баз данных.
Если данное окно используется при установления соединения с удаленным сервером, то в поле Database Startup Command Line должна быть строка, синтаксис которой имеет вид:

CLIENT [РЕЖ_КЛИЕНТ ...],

гдеCLIENT - полный путь к файлу, представляющего компоненту SQL Anywhere Client;
 РЕЖ_КЛИЕНТ - необязательный параметр режим функционирования клиентской компоненты СУБД.
Флажок Auto-stop datase when connections terminated рассматриваемого окна определяет значение параметра соединения AutoStop. На рис. 9 этот флажок находится в установленном состоянии, т. е. AutoStop=Yes.

Анализируя содержимое диалоговых окон SQL Anywhere Logon и Custom Database Startup, представленных на рис. , можно отметить следующее. Производится установление соединения с базой данных Biblia. Она будет функционировать под управлением удаленного сервера Server_ste1. Обмен информацией с сервером будет осуществляться при помощи сетевого протокола IPX. Базовый файл базы данных Biblia находится на ЭВМ с сетевым именем Serv_Dbase.

Теперь после того как требуемые поля параметров соединения заполнены можно осуществить подключение к . Для этого необходимо щелкнуть мышкой по кнопке OK в сокращенном или полном окне параметров соединения (см. рис. , ). Тогда, если параметры соединения заданы правильно, произойдет установления соединения. При этом происходит запуск клиентской компоненты SQL Anywhere, после чего в Панели задач появится кнопка с названием сервера Server_ste1. Затем на переднем плане появится окно утилиты SQL Central, в котором произошли некоторые изменения по сравнению с его первоначальным видом (). Так в левой панели окна утилиты появится значок работающего сервера в виде монитора с именем сервера справа от него. В нашем случае сервер называется Server_ste1. Щелкните мышью слева от значка сервера по значку "+". Тогда можно будет увидеть все базы данных, работающие под управлением сервера Server_ste1 (рис. 10). В нашем случае это только . Тут же в скобках указано имя пользователя установившего соединение - Stepanov.



Рис. 10. Отображение факта соединения в утилите SQL Central

После того как соединение с базой данных установлено можно производить манипулирование ее объектами.


Установление соединения с базой данных


Любой пользователь перед тем как начать свою работу с требуемой базой данных должен произвести соединение с ней. На основании информации, передаваемой СУБД через параметры соединения, происходит:

принятие решение о допуске пользователя к работе с этой базой данных; определение привилегий пользователя.

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



Установления соединения через командную строку


Покажем применение командной строки для установления соединения с базой данных на примере утилиты DBWATCH. Данная утилита позволяет отображать окно сервера на экране монитора клиентской ЭВМ.

Рассматриваемая утилита для своей работы должна осуществить подключение от имени зарегистрированного пользователя одной из баз данных управляемых сервером. Именно этим объясняется перечень параметров утилиты DBWATCH, представляющих собой строку параметров соединения. Запустим рассматриваемую утилиту для отображения окна сервера Server_ste1 от имени пользователя Stepanov, зарегистрированного в . Для этого командная строка должна иметь следующий вид:

c:\SQLAny50\Win32\Dbwatch.exe -c "ENG=Server_ste1; DBN=Biblia; UID=Stepanov; PWD=s"

Если параметры соединения указаны правильно и удаленный сервер работает, то на экране клиентской ЭВМ появится копия окно удаленного сервера.