![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Lobsang |
|
|||
|
Unregistered |
Ребят, очередная затыка.
Мне нужно в таблицу БД (крутится на MS-SQL server) положить некоторую информацию. Я значит создал хранимую процедуру в этой БД. Назвал "NewEmployees". (Она работает в аналайзере - проверял). На форму положил компоненту ADOStoredProc1. В КоннекшионСтринг прописал путь к базе (Есть коннект, так как данные из таблиц вытаскивает). Пишу след. код: ADOStoredProc1.ProcedureName:='NewEmployees'; ADOStoredProc1.Parameters.ParamValues['@NEAppointment'] := 'Главный'; ADOStoredProc1.Parameters.ParamValues['@NEBossIDEmployees']:= 1; ... ADOStoredProc1.ExecProc; Приложение компилируется. Но при попытке Запустить этот код выдается сообщение что мол параметр '@NEAppointment' не найден. (закомментирешь этот - ругнется на следующий). Я пытался через ADOStoredProc1.Parameters[3].Value:= 'Главный'; Тот же результат. Что самое интересное - пытался взять и посчитать число параметров: Memo1.Text:= IntToStr(ADOStoredProc1.Parameters.Count); Получил тоже самое сообщение да еще и 0 - в результате. О КАК!!! Но, Руками я спокойно в свойствах ADOStoredProc1 могу задать имя процедуры, после чего вижу все ее параметры. Результат однако по-прежнему плачевен. Что я делаю не так, а? |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Что-то такое было у меня, но если честно я уже и не помню точно, что сделал.
Если мне не изменяет память, после выбора процедуры, Вы должны обязательно в Object Inspector-е открыть окно редактирования свойств паратеров. Т.е. дважды кликнуть по свойству Parameters. Тогда должно все заработать. Такая проблема была у меня в Delphi 5. -------------------- |
|||
|
||||
| Lobsang |
|
|||
|
Unregistered |
Так в том то все и дело, что на стадии разработки процедура видна превосходно, вместе со всеми своими параметрами. Я могу конечно намертво закрепить за ADOStoredProc1 именно эту процедуру. Но я хочу сделать все "по-уму", т.е. имя процедуры должно подгружаться во время работы программы.
И потом, Даже если я намертво привязываю Хранимую процедуру со своим ADOStoredProc1, то все-равно, мне нужно передавать данные со своей формы в параметры процедуры (см. выше). Результат не меняется. Что за бред. |
|||
|
||||
| Lobsang |
|
|||
|
Unregistered |
Хмм...ммм да. Все как и говорил Pegas
Только после того как заходишь в параметры через ObjectInspector и там создаешь, а затем удаляешь еще один параметр, программа "улавливает" наличие параметров у хранимой процедуры. Но работает это только в том случае, если Из кода убрать ADOStoredProc1.ProcedureName:='NewEmployees'; Оставив название - на процесс компиляции. Глюк. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |