powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите студенту с IBStoredPros
9 сообщений из 9, страница 1 из 1
Помогите студенту с IBStoredPros
    #32557281
zerrowich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то я уже запутался с ними. От этой курсовой уже голова неработает. Я пишу
так
..............................................................................................................
CREATE PROCEDURE IRASYTI_NARIUS (
VARDAS CHAR (20),
PAVARDE CHAR (20),
GIMTADIENIS DATE,
ASMENS_KODAS VARCHAR (11),
SK_ID INTEGER)
AS
BEGIN
INSERT INTO ZMOGUS(VARDAS, PAVARDE, GIMTADIENIS,
ASMENS_KODAS, SK_ID)
VALUES(:VARDAS, :PAVARDE, :GIMTADIENIS,
:ASMENS_KODAS, :SK_ID);
SUSPEND;
END
................................................................................................................
В Делфи так
............................................................................................................
with Form1.IBDatabase1 do
if not IBtransaction1.InTransaction then
IBTransaction1.StartTransaction;
IBquery1.SQL.Clear;
IBStoredproc1.Name:= 'IRASYTI_NARIUS';
IbStoredproc1.ParamByName('VARDAS').AsString:=vardasEdit.Text;
IbStoredproc1.ParamByName('PAVARDE').AsString:= pavardeEdit.Text;
IbStoredproc1.ParamByName('GIMTADIENIS').AsString:= GIMTADIENISEDIT.Text;
IBStoredproc1.ParamByName('ASMENS_KODAS').AsString:= Asmens_kodasEdit.Text;
IBStoredproc1.ParamByName('SK_ID').AsString:= Asmens_kodasEdit.Text;
IBStoredproc1.Prepare;
IBStoredproc1.ExecProc;
IBquery1.SQL.Add ('SELECT * FROM SEIMA');
IBQuery1.Open;
end
..............................................................................................................
Когда дохожу до первого параметра,
IbStoredproc1.ParamByName('VARDAS').AsString:=vardasEdit.Text;
вылетает ошибка. Что-то я тут напутал. Но непойму что. Может свежим глазом
лучше видно.
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32557311
Dremuchij Forester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. У тебя процедура действия, посему SUSPEND - нафиг.
2.
IBStoredproc1.Name:= 'IRASYTI_NARIUS';
IbStoredproc1.ParamByName('VARDAS').AsString:=vardasEdit.Text;

Ты сначала говоришь "Вася, теперь тебя будут звать Петей",
А потом - "Вася, слушай сюда!" - но Вася-то уже Петя!
Чтоб задать имя вызываемой ХП, юзай свойство StoredProcName.

IBStoredproc1.StoredProcName := 'IRASYTI_NARIUS'
IbStoredproc1.ParamByName('VARDAS').Value {а не AsString}:= vardasEdit.Text;


3. У тебя в одной транзакции запись (IbStoredproc1.ExecProc) и чтение (IBQuery1.Open), а это не есть ГУТ.

4. Ну и там еще помаленьку...
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32557400
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zerrowich
убери SUSPEND из процедуры, потому как он не нужен...

про StoredProcName Тебе уже сказали...
нужно для начала создать параметр в компоненте IBStoredProc...
вот что у меня работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
with DataModule2.StoredProc1 do
 begin
  Close;
  StoredProcName:='';
  StoredProcName:='katpodr_ins_upd';
  Params.AddParam(Params.CreateParam(ftUnknown,'prizn',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'q1',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'q2',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'q3',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'q4',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_nrec',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_name',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_kod',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_c_tippodr',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_c_func',ptInput));
  Params.AddParam(Params.CreateParam(ftUnknown,'p_isleaf',ptInput));
  Params.AddParam(Params.CreateParam(ftInteger,'E_NREC',ptOutput));
  ParamByName('prizn').AsString:=s_rej;
  ParamByName('q1').asDate:=Date();
  ParamByName('q2').asstring:=TimeToStr(Time());
  ParamByName('q3').asstring:=s_kuser;
  ParamByName('q4').asstring:=lof;
  ParamByName('p_nrec').asFloat:=pr_nrec;
  ParamByName('p_name').asString:=pr_name;
  ParamByName('p_kod').asString:=pr_kod;
  ParamByName('p_c_tippodr').asFloat:=pr_c_tippodr;
  ParamByName('p_c_func').asFloat:=pr_c_func;
  ParamByName('p_isleaf').asstring:=pr_isleaf;
  ExecProc;
  Result:=ParamByName('E_NREC').Value;
  StoredProcName:='';
  Close;
 end;
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32557918
zerrowich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за замечания. Но интересно, хотя в Object inspector в Storedproc парамеры эсть но показывает ошибку " required para value not set".
Конечно можно вписать вручную код как предложил товарищ, но хочится разобратся до конца.
спасибо всем за ответы.
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32558127
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ошибку переведи и поймёшь что делать надо и чего не хватает...
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32558130
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати можно и не в ручную параметры задавать, но тогда если в базе 100 процедур, то для вызова каждой нужно будет свой IBStoredProc компонент делать...
кстати SUSPEND из процедуры убрал???
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32558297
zerrowich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Suspend убрал. все подправил. Но что-то непринимает параметры б хотя их видит
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32560954
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Params.AddParam(Params.CreateParam(ftUnknown,'p_isleaf',ptInput));
так делал или статично задаётся?
...
Рейтинг: 0 / 0
Помогите студенту с IBStoredPros
    #32567730
zerrowich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cейчас все нормально спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите студенту с IBStoredPros
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]