![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.08.2009
Сообщений: 7
|
![]()
Здравствуйте, вы не подскажете, что я делаю не так.
База данных, состоящая из одной таблицы, написана в SQL 2005, там же создана процедура: CREATE PROC InsertPasport @s_n INT ,@surname VARCHAR(30) ,@name1 VARCHAR(30) ,@name2 VARCHAR(30) ,@birthday DATETIME ,@who_v VARCHAR(500) ,@when_v DATETIME ,@registration VARCHAR(500) ,@adres VARCHAR(500) ,@family VARCHAR(20) AS Begin INSERT INTO Pasport (S_N, SURNAME, NAME1, NAME2, BIRTHDAY, WHO_V, WHEN_V, REGISTRATION, ADRES, FAMILY) VALUES (@s_n, @surname, @name1, @name2, @birthday, @who_v, @when_v, @registration, @adres, @family) end GO Интерфейс к базе создаётся на Delphi. Проблема в том что при обращении к процедуре “InsertPasport” : procedure TForm2.FormCreate(Sender: TObject); begin ADOQuery1.close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('EXEC InsertPasport'); ADOQuery1.Open; ADOQuery1.Active:=true; end; Появляется ощибка: Exception class EOleException with message 'Procedure or Function 'InsertPasport' expects parameter '@s_n', which was not supplied'. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
А параметры кто будет в процедуру передавать?
А то получается требуете добавить паспорт, а какой, чей и с какой целью не указываете. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 11.08.2009
Сообщений: 7
|
![]()
А вас не затруднит привести пример.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Ну вообще для работы с хранимыми процедурами есть ADOStoredProc. В ADOQuery вроде бы надо как-то так:
Код:
Код:
![]() |
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Код:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 11.08.2009
Сообщений: 7
|
![]() Код:
Exception class EDatabaseError with message 'ADOQuery1: CommandText does not return a result set'. Как это можно исправить? |
![]() |
![]() |
![]() |
#7 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]()
может так?
Код:
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 11.08.2009
Сообщений: 7
|
![]() |
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]() Цитата:
Вообще это он ругается, что ничего не возвращается (оно и правильно. процедура ваша же ничего не возвращает), только вот это логично при Open, а при ExecSQL вроде ничего и не ожидается... Попробуйте еще у свойства ExecuteOptions вашего ADOQuery1 установить eoExecuteNoRecords в true. |
|
![]() |
![]() |
![]() |
#10 | |
Новичок
Джуниор
Регистрация: 11.08.2009
Сообщений: 7
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Insert - ? | Evgenii | БД в Delphi | 2 | 06.07.2009 02:24 |
Процедура в процедура в C++ Builder | Ecosasha | C++ Builder | 2 | 06.06.2009 17:17 |
переменная внутри Insert | hinku | БД в Delphi | 1 | 15.04.2009 17:21 |
insert и update | Tanusha | SQL, базы данных | 4 | 13.03.2009 14:47 |
mysql проблемы с INSERT | proglamer | PHP | 4 | 30.03.2008 14:36 |