Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2010, 00:01   #1
DimaP2010
Новичок
Джуниор
 
Регистрация: 26.12.2010
Сообщений: 2
По умолчанию Ошибка при работе с 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.E dit1.Text;
Parameters.ParamByName('@nomer').Va lue:=Form3.Edit 2.Text;
Parameters.ParamByName('@vmestimost ').Value:=Form3 .Edit3.Text;
Parameters.ParamByName('@id_aftobus _nom').Value:=0 ;
Execute;
idl:=Parameters.ParamByName('@id_af tobus_nom').Val ue;
end;
with DataModule2.WDataSet1 do
begin
Close;
open;
Locate('id_aftobus_nom',idl,[]);
end;
end;
end;

Привязал к форме WDataSet1 и W_Command1 через DataModule2, всё настроил на хранимую процедуру. После запуска программы и ввода трёх значений жму кнопку(Ok) и программа вылетает с сообщением, что моя процедура ожидает параметр @vmestimost который небыл предоставлен.
Потом надо закрывать проект и при повторном открытии я увидел что в мой DBGrid в котором я отображаю таблицу всё добавилось тоже самое в базе, всё норм.

Вопрос: что это такое если программа вылетает, но тем немение действие выполняется???? Как это исправить??? Я новичёк в Delphi 7 и зарание прошу извенения если вопрос тупой.
Всем спасибо за внимание.
DimaP2010 вне форума Ответить с цитированием
Старый 28.12.2010, 19:35   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

В ADO есть нормальный компонент TADOStoredProc. С ним проще работать.
А ошибка в этом случае, возможно, из-за того, что в списке параметров компонента их типы не определены.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при работе с датами sql server в delphi Fellot БД в Delphi 3 05.06.2010 22:50
Ошибка при работе с формами (Delphi) MaGiS Помощь студентам 3 16.03.2010 17:53
Ошибка при работе с MySQL 3.51 в Delphi 2009 rainbow БД в Delphi 0 27.03.2009 06:47
delphi 9 или delphi 2005 вопрос о работе Doget Компоненты Delphi 0 07.07.2008 08:50