![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Если возможно подскажите, я пытаюсь добавить запись в таблицу через Delphi и хранимую процедуру. Моя хранимая процедура выглядит: Код:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[af_add] @vmestimost int, @nomer varchar(30), @id_marka int, @id_aftobus_nom int output as begin set nocount on; insert into sp_aftobus_nom(vmestimost, nomer, id_marka) values(@vmestimost, @nomer, @id_marka); set @id_aftobus_nom=@@IDENTITY end; Код добавления в Delphi: Код:
procedure TForm1.Button1Click(Sender: TObject); var idl: integer; begin Form3.Edit1.Text:=''; Form3.Edit2.Text:=''; Form3.Edit3.Text:=''; if Form3.ShowModal=mrOk then begin with DataModule2.W_Command1 do begin CommandText:='af_add;1'; Parameters.Refresh; Parameters.ParamByName('@id_marka').Value:=Form3.Edit1.Text; Parameters.ParamByName('@nomer').Value:=Form3.Edit2.Text; Parameters.ParamByName('@vmestimost').Value:=Form3.Edit3.Text; Parameters.ParamByName('@id_aftobus_nom').Value:=0; Execute; idl:=Parameters.ParamByName('@id_aftobus_nom').Value; end; with DataModule2.WDataSet1 do begin Close; open; Locate('id_aftobus_nom',idl,[]); end; end; end; lmikle: пользуемся тегами!!! Привязал к форме WDataSet1 и W_Command1 через DataModule2, всё настроил на хранимую процедуру. После запуска программы и ввода трёх значений жму кнопку(Ok) и программа вылетает с сообщением, что моя процедура ожидает параметр @vmestimost который небыл предоставлен. Потом надо закрывать проект и при повторном открытии я увидел что в мой DBGrid в котором я отображаю таблицу всё добавилось тоже самое в базе, всё норм. Вопрос: что это такое если программа вылетает, но тем немение действие выполняется???? Как это исправить??? Я новичёк в Delphi 7 и зарание прошу извенения если вопрос тупой. Всем спасибо за внимание. |
#2
|
|||
|
|||
![]() вообще, для вызова хранимых процедур существует специальный компонент ADOStoredProc. Только в ADO зачастую надо руками настраивать типы параметров (что в кверях, что в других компонентах).
|