Topic: Вызов из пакета процедуру в Оракле с параметрами
|
|
stivens
User
 Fresh Boarder
| Posts: 8 |   | Karma: 1 |
|
Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/10 11:51 |
|
|
|
|
ЮЗАЮ ДЕЛФИ 10. делаю препере- даю ин параметр (parambyname('in').value:=param) Вызываю процедуру, пытаюсь читать параметр, result:=parambyname('out').asstring; а параметр пуст. Проверил на NCOCI8.- все рулит. В чем проблема? Однозначно коннект идет пробовал обзывать пакет заведомо с ошибкой в имени- ругаеться. Никаких трай експт не юзал. НУЖДАЮСЬ В СРОЧНОМ ОТВЕТЕ!!!
|
|
Diman
Admin
 Admin
| Posts: 1482 |  | Karma: 19 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/10 12:38 |
|
|
|
|
Мне необходимо знать: 1) Версии клиента и сервера 2) Код ХП 3) Код вызова ХП
|
|
stivens
User
 Fresh Boarder
| Posts: 8 |   | Karma: 1 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/11 01:08 |
|
|
|
|
oracle server -9.2 client-9.2.08 WIN XP (PRO) SP2
При чем я удаляю параметры и все равно не ругаеться, хотя должен, вызывать ошибку ора.
NextRecordset-демо в котором я крутил. Менял следущее. spInOutPars.PackageName:=....мое spInOutPars.StoredProcName:=....мое
procedure TfrmNextRecordset.btnExecProcClick(Sender: TObject); begin spInOutPars.Close; spInOutPars.Prepare; spInOutPars.ParamByName('UName').Value :='Informix'; spInOutPars.ExecProc; edtPout1.Text := spInOutPars.ParamByName('DT').AsString; // spInOutPars.Params[1].AsString; // edtPout2.Text := spInOutPars.Params[3].AsString; end;
|
|
stivens
User
 Fresh Boarder
| Posts: 8 |   | Karma: 1 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/11 01:37 |
|
|
|
|
|
Сейчас выложу пакет...
|
|
stivens
User
 Fresh Boarder
| Posts: 8 |   | Karma: 1 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/11 01:44 |
|
|
|
|
create or replace package body PEB_TESTOUT_PKG as PROCEDURE PEB_TESTOUT (UName IN VARCHAR2, DT OUT VARCHAR2) IS BEGIN DBMS_OUTPUT.enable; SELECT username INTO DT FROM creator.users WHERE creator.users.username = UName; DBMS_OUTPUT.put_line(DT); END PEB_TESTOUT; end peb_testout_PKG;
|
|
Diman
Admin
 Admin
| Posts: 1482 |  | Karma: 19 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/11 02:20 |
|
|
|
|
По видимому на каком то этапе вы что-то порушили. Возможно для DT параметра ParamType не ptOutput. Поэтому, киньте ADStoredProc на форму, установите PackageName в PEB_TESTOUT_PKG. StoredProcName в PEB_TESTOUT. Далее создайте обработчик, выполняющий процедуру:
ADStoredProc1.Params[0].AsString := 'ADDEMO';
ADStoredProc1.ExecProc;
ShowMessage(ADStoredProc1.Params[1].AsString);
|
Должно работать ...
|
|
stivens
User
 Fresh Boarder
| Posts: 8 |   | Karma: 1 |
|
Re:Вызов из пакета процедуру в Оракле с параметрами
|
|
Posted: 2007/10/11 02:44 |
|
|
|
|
|
Просто наверное я менял в примере имена пакетов и процедуры и че-то не сраслось, в новом кобъекте аласса все рулит. СПАСИБО,
|
|
|