Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.12.2010, 23:53
DimaP DimaP вне форума
Прохожий
 
Регистрация: 26.12.2010
Сообщения: 2
Репутация: 10
По умолчанию Ошибка при работе с Delphi 7 и SQL 2005

Здравствуйте.
Если возможно подскажите, я пытаюсь добавить запись в таблицу через 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  
Старый 28.12.2010, 00:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

вообще, для вызова хранимых процедур существует специальный компонент ADOStoredProc. Только в ADO зачастую надо руками настраивать типы параметров (что в кверях, что в других компонентах).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:46.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025