|
Программирование >> Руководство по созданию web приложений
После завершения цикла, 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);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |