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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 22:16   #1
Mashul'ka
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 32
Печаль Вызов ХП из Oracle

Пытаюсь вызвать две процедуры в Delphi.
Код:
PROCEDURE del_stud( id_studenta INTEGER)
AS id_stud INTEGER;
BEGIN
DELETE student
WHERE id_studenta=id_stud;
END del_stud;

PROCEDURE new_i(L VARCHAR2, pas VARCHAR2, f VARCHAR2, nom_z NUMBER , nom_gr NUMBER )
AS v_id_studenta NUMBER;
BEGIN
SELECT  id_studnta_SQ.NEXTVAL
INTO v_id_studenta FROM DUAL;
INSERT INTO student(id_studenta,login, parol, fio, nomer_zachetki, nomer_gruppi)
VALUES (v_id_studenta, L, pas,f, nom_z, nom_gr  );
END new_i;
Текст вызова ХП:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOStoredProc1.Parameters.ParamValues['l'] := Edit1.Text;
ADOStoredProc1.Parameters.ParamValues['pas'] := Edit2.Text;

ADOStoredProc1. Parameters.ParamValues['f'] := Edit3.Text;

ADOStoredProc1.Parameters.ParamValues['nom_z']:= Edit4.Text;
ADOStoredProc1.Parameters.ParamValues['nom_gr']:= Edit5.Text;
ADOStoredProc1.ExecProc;

ADOTable1.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Application.MessageBox('Удалить студента.', 'Удаление', MB_OKCANCEL)=ID_OK then
begin
ADOStoredProc2.Parameters.ParamValues['Id_studenta'] := Edit6.Text;
ADOStoredProc2.ExecProc;
ADOTable1.Refresh;
end;
  end;
При запуске выдает сообщение об ошибке.
Изображения
Тип файла: jpg error.jpg (13.3 Кб, 120 просмотров)

Последний раз редактировалось Stilet; 27.10.2011 в 08:28.
Mashul'ka вне форума Ответить с цитированием
Старый 27.10.2011, 04:52   #2
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от Mashul'ka Посмотреть сообщение
При запуске выдает сообщение об ошибке.
При использовании какой из процедур?

Я может чего-то не понимаю но ID_stud - имя поля таблицы, а ID_studenta - имя параметра, тогда приравнивается значение параметра значению поля из таблицы:
Цитата:
Сообщение от Mashul'ka Посмотреть сообщение
Код:
WHERE id_studenta=id_stud;
Вообще что-то часто стали задавать вопросы по ХП.
У меня другой вопрос - зачем использовать ХП для таких тривиальных вещей???
P.S. лучше код оформить по правилам, скоро придет модератор и вынесет предупреждение.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Старый 27.10.2011, 06:33   #3
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Ошибка с типами
Цитата:
PROCEDURE new_i(L VARCHAR2, pas VARCHAR2, f VARCHAR2, nom_z NUMBER , nom_gr NUMBER )
ADOStoredProc1.Parameters.ParamValu es['nom_z']:= Edit4.Text;
попробуйте
Код:
ADOStoredProc1.Parameters.ParamValu es['nom_z']:= StrToInt(Edit4.Text);
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов Oracle процедуры с out параметром из C# BeJIuKuu_Hexo4yxa SQL, базы данных 1 24.11.2010 11:49
Вызов процедуры. Leo20 Общие вопросы Delphi 11 23.11.2009 16:30
oracle sergei64_89 Помощь студентам 1 29.09.2008 15:37
Вызов функции MarSeON PHP 2 01.08.2008 20:22
вызов Iceman Софт 7 24.02.2008 07:30