Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выполнение storedproc [D6, IB6.x]


ddd ©   (2003-03-05 15:35:00) 

день добрый.
в ibconsole создал хп:
...
create procedure table1_insert (field1 integer, field2 integer)
as begin
insert into table1 (field1, field2)
values (:field1, :field2);
end;
...
как мне передать параметры для вставки (из combobox-ов) и выполнить хп из проги?
пробую так:
ibstoredproc1.storedprocname:="table1_insert";
ibstoredproc1.params.clear;
with ibstoredproc1.params.createparams(ftinteger, "field1", ptinput) do
begin
table1.field1:=combobox1.text;//ошибка: table1- undeclared dentifier;
asstring:=table1.field1;
end;
//аналогично для field2
ibstoredproc1.prepare;
ibstoredproc1.execproc;
в чем ошибка?


ddd   (2003-03-06 11:11:00) [1]

Johnmen © (05.03.03 16:19)
оба-на, отображается, и не что-то, а то, что вставляю.
и при этом, оба-на, не сохраняется в таблице.

SergeyNew (05.03.03 16:48)
оно самое!
спасибо.


SergeyNew   (2003-03-05 16:48:00) [2]

У тебя PARAMS.CLEAR стоит ? Если стоит, то ошибка list index out of bonds появляется из-за нее.


Johnmen   (2003-03-05 16:19:00) [3]

Оба-на... Еще и в гриде что-то отображается !


ddd   (2003-03-05 16:15:00) [4]

Delirium^.Tremens © (05.03.03 15:53)
да ну?

sunwheel © (05.03.03 15:53)
не хотелось бы, но попробую.

SergeyNew (05.03.03 15:57)
попробовал. первый раз выполняется, при втором- list index out of bonds. к тому же, отображаются в гриде (при текущем выполнении проги) но не сохраняются в таблице.

будем искать.


SergeyNew   (2003-03-05 15:57:00) [5]

Попробуй так

with ibStoredProc1 do
begin
storedprocname:="table1_insert";
Prepare;
Params[0].AsInteger:=InttosTr(ComboBox1.Text);
Params[1].AsInteger:=InttoStr(ComboBox2.Text);
ExecProc;
end;


Delirium^.Tremens   (2003-03-05 15:53:00) [6]


> table1.field1:=combobox1.text;//ошибка: table1- undeclared
> dentifier;
> asstring:=table1.field1;
> end;
>...
> в чем ошибка?

1. Нет такого объекта table1 :-)


sunwheel   (2003-03-05 15:53:00) [7]

Попробуй так:

Query1.SQL.Add("EXECUTE PROCEDURE table1_insert(:field1,:field2)
Quer1.ParamByName("field1").AsInteger := 1;
Quer1.ParamByName("field2").AsInteger := 2;
Query1.ExecSQL;


Наверх

Титульная страница Поиск, карта сайта Написать письмо