Программирование >>  Руководство по созданию web приложений 

1 ... 95 96 97 [ 98 ] 99 100 101 ... 141


После завершения цикла, i;f4,.i.i функция . - Its вернет iiia-ionnc SQL N0 DATA, программа может получить параметры из локальных

к которым эти параметры были привязаны до запуска

Программа ODBl

Применение описанных методик вызова хранимых процедур с параметра-

ми демонстрируется на примере консольной программы ODBCPARAM.

Программа ODBCPARAM У и

запрос к таблице managers базы данных Bookstore и затем права пользователя:

Login name: Password: 123

Tciui rights: Administrator

Если пароль или идентификатор указаны прав на кон-

соли появляется строка *nothln3*;

Login name: frolov Password: 111

Yoor rights: nothing

Здесь мы не будем описывать глобальные определения и переменные программы ODBCPARAM, так как они аналогичны в программе (см. ранее в этой главе). Вместо этого мы сразу расскажем о ; ;- все основные действия.

Сразу запуска функция main получает все : идентифика-

торы и открывает соединение с источником Ниже показаны фрагмен-

ты кода, выполняющие эти операции: гс = . .: NULL, lliEnv):

hEnv, ShDbc);

= SQLConnect(hDbc, szOSN,

Обработка ошибок опущена .ля краткости. выполняется точно таким же образом, как и в программе ODBCAPP.

На следующем этапе мы запустим хранимую процедуру с ко-

Вы познакомились в четвертой главе нашей книги. Для удобства мы повторим исходный текст этой . i. немного изменив его:

CREATE - : varchar(50), apass varchar(50),

output AS

IF NOT * FROM



INSERT managers (laiiie. Password, Rights,

SELECT

SELECT . FROM - WHERE AND

UPDATE managers SET E() WHERE

откорректировано значение, возвратцаемое в случае отсутствия записи сотрудника в данных. Вместо пустой строки возвращается строка

Как видите, процедура имеет два входных и один

параметры. Подучив управдение, она проверяет существование записей в таб-nianagers. Если таблица пуста, в ней создается новая запись с правами администратора. Это нужно для начальной настройки системы при первом запуске.

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

ей ii-jisa; параметры tUser и tPa Если такая запись найдена, права сотрудника переписываются в выходной параметр Если же записи н i, в этой параметр записывается строка

Перед тем как запустить процедуру, нам нужно создать идентификатор команды и привязать три параметра, для передачи пароля и прав сотрудника.

идентификатора команды выполняется, как и . функцией

гс = . \ - - ЩЖ t),

Далее вводит с консоли и привязывает к соответствующему па-

раметру хранимой процедуры ManagerLogin строку аша. содержащую имя

сотрудника:

SQLCHAR 3ateiiiinNaae[51].

re = 3<]a3laaFa-aiatar(h8tat 1, 801,а>лнля, 111а1:1 SQL C CHAR, SQL CHAR, 50, 0, szAdminName, 50,

образом выполняется ввод пароля и привязка szAdminPass, предназначенной для пароля:

SQLCHAR

SQLINTEGER . =

SQL CHAR, 50, О, szAdminPass, 50,

В обоих случаях мы

параметры константой



Выходной параметр i

с применением константы SQLPA-

SQLINTEGER

3, О,

PUT,

Именно сюда будет записан

К нему массив

результат работы хранимой процедуры in.

Для запуска хранимой процедуры на выполнение мы вызываем функцию SOLExecDirect, передавая ей идентификатор команды и шаблон процедуры ManagerLogin:

гс =

(unsigned

wtiileCCrc = .0 . - .. . . - . ! =

i го == -1)

breal<;

После того как программа убедится в отсутствии наборов записей (что в нашем случае не требуется делать, так как процедура ManagerLogin не создает никаких наборов), она выводит . полученные права сотрудника: priPtf( \nYour riglits: l5\n , .

Перед завершением работы освобождает идентификатор команды,

отключается от источника данных, а затем освобождает идентификаторы источника данных и среды исполнения;

hPoc); ri:n);



1 ... 95 96 97 [ 98 ] 99 100 101 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика