C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с IBStoredProc
ekya
Отправлено: 12.09.2003, 19:01


Ученик-кочегар

Группа: Участник
Сообщений: 27



Привет всем.
Проблема появилась неоткуда.
Есть несколько хранимых процедур (далее процедуры) в которых есть только возвращаемый параметр, т.е. Output. При их вызове нет никаких проблем. Я взываю их вот так:

DM->IBSP->StoredProcName="GET_NEW_ID";
DM->IBSP->ExecProc();
return DM->IBSP->ParamByName("ID")->AsInteger;

Но есть еще процедура, в которой кроме Output параметра есть и Input параметры и на следующий код при выполнении ругается, что нет параметров вообще, т.е. "нет параметра 'GRP' ", ну а дальше не идет, но думаю, что и дальше бы ругнулось

DM->IBSP->StoredProcName="OBJ_GRP_LNK_EXIST";
DM->IBSP->Params->ParamByName("GRP")->AsInteger=g;
DM->IBSP->Params->ParamByName("LEV")->AsInteger=l;
DM->IBSP->ExecProc();
return DM->IBSP->Params->ParamByName("RET")->AsInteger>0 ? false : true;

Помогите чем сможете
Anry
Отправлено: 16.09.2003, 08:39


Дежурный стрелочник

Группа: Участник
Сообщений: 56



Может быть попробовать настроить тип параметра и тип данных параметра. Builder'а под рукой нет (проверить не могу), так что могу ошибиться:
CODE

DM->IBSP->Params->Items[0]->DataType = ftInteger;
DM->IBSP->Params->Items[0]->ParamType = ptInput;


Отредактировано Anry — 16/09/2003, 09:42
ekya
Отправлено: 28.09.2003, 13:45


Ученик-кочегар

Группа: Участник
Сообщений: 27



Я разобрался, надо вот так делать

DM->IBSP->Params->CreateParam(ftInteger, "@param1", ptInput);
DM->IBSP->Params->CreateParam(ftInteger, "@param2", ptInput);
DM->IBSP->Params->CreateParam(ftInteger, "@RET", ptOutput);

А потом юзать их как обычно — через Params->Items[] или Params->ParamByName(" ")

Вернуться в Работа с базами данных в C++Builder