Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: Вызов из пакета процедуру в Оракле с параметрами
Вызов из пакета процедуру в Оракле с параметрами
Posted: 2007/10/10 11:51
 
ЮЗАЮ ДЕЛФИ 10.
делаю препере- даю ин параметр (parambyname('in').value:=param)
Вызываю процедуру,
пытаюсь читать параметр,
result:=parambyname('out').asstring;
а параметр пуст. Проверил на NCOCI8.- все рулит. В чем проблема? Однозначно коннект идет пробовал обзывать пакет заведомо с ошибкой в имени- ругаеться. Никаких трай експт не юзал.
НУЖДАЮСЬ В СРОЧНОМ ОТВЕТЕ!!!
Re:Вызов из пакета процедуру в Оракле с параметрами
Posted: 2007/10/10 12:38
 
Мне необходимо знать:
1) Версии клиента и сервера
2) Код ХП
3) Код вызова ХП
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;
Re:Вызов из пакета процедуру в Оракле с параметрами
Posted: 2007/10/11 01:37
 
Сейчас выложу пакет...
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;
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);


Должно работать ...
Re:Вызов из пакета процедуру в Оракле с параметрами
Posted: 2007/10/11 02:44
 
Просто наверное я менял в примере имена пакетов и процедуры и че-то не сраслось, в новом кобъекте аласса все рулит. СПАСИБО,