Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

Люди, ну не оставляйте в беде...   Найти похожие ветки 

 
tovSuhov ©   (2002-03-29 14:36) [0]

Из всех книг под рукой только и-нет. Уже не первый час бьюсь...
В ФАКах искал, в "Поиске"...
Как выполнить ФУНКЦИЮ с моим параметром и получить возвращаемое ею значение?
Ну хоть кусочек кода, други...


 
Val ©   (2002-03-29 14:41) [1]

компонент TStoredProc поможет, параметы и передаются и принимаются :)


 
tovSuhov ©   (2002-03-29 14:48) [2]

Так вот с ним, милым, и мучаюсь...
Есть функция
DBMS_PIPE.SEND_MESSAGE (pipename IN VARCHAR2, timeout IN INTEGER DEFAULT MAXWAIT, maxpipesize IN INTEGER DEFAULT 8192) RETURN INTEGER;
Как у нее вытащить результат?


 
Val ©   (2002-03-29 14:57) [3]

ParamByName("Result") -должно помочь :))


 
tovSuhov ©   (2002-03-29 15:10) [4]

Делаю:
Proced1.ProcedureName = "DBMS_PIPE.SEND_MESSAGE";
Proced1.Parameters.ParseSQL("Exec DBMS_PIPE.SEND_MESSAGE :Param1 :Param2 :Param3",True);
Proced1.Parameters.ParamByName("Param1").Value := "proba";
Proced1.Parameters.ParamByName("Param2").Value := 5000;
Proced1.Parameters.ParamByName("Param3").Value := 8192;
Proced1.Open;
ShowMessage(IntToStr(Proced1.Parameters.ParamByName("Result").Value));


Ругается:
"SEND_MESSAGE is a not procedure or is undefined"
Дело в том, что это функция, и я подозреваю, что с ней надо работать иначе, чем с обычными хранимыми процедурами...


 
USAtyj ©   (2002-03-29 15:16) [5]

Поставь компонент DOA.


 
USAtyj ©   (2002-03-29 15:16) [6]

Поставь компонент DOA.
(Direct Oracle Access кажись).
Там все проще.


 
tovSuhov ©   (2002-03-29 15:25) [7]

>USAtyj :
Я, конечно, извиняюсь...Но, по моему, вопрос поставлен достаточно конкретно. Я уверен, что люди, работающие с БД не один год, не раз сталкивались с необходимостью выполнять на сервере БД различные функции и использовать возвращаемые ими значения. Это, так сказать, основа основ. Вот и я подошел к этому :-)). Вот и прошу уважаемых Мастеров и Зубров поделиться - как оно реализуется...


 
Judith ©   (2002-03-29 15:44) [8]

Ну, во-первых, проверь правильно ли указано у Proced1 DataBaseName.
Во-вторых, ты опечаталься или у тебя действительно
Proced1.ProcedureName = "DBMS_PIPE.SEND_MESSAGE";
Надо бы так
Proced1.StoredProcedureName = "DBMS_PIPE.SEND_MESSAGE";
В-третьих, DBMS_PIPE это пакадж или схема?
И какой у тебя Оракл, какая версия БДЕ?


 
tovSuhov ©   (2002-03-29 15:50) [9]

Опечатался:Proced1.ProcedureName := "DBMS_PIPE.SEND_MESSAGE";
С Proced1 все нормально. Я в нем несколько процедур уже выполнял.
Оракл 8.1.чего-то там...
Так как Proced1 это компонент TADOStoredProc, BDE на него никоим образом не влияет (насколько я знаю).DBMS_PIPE - это package.


 
Val ©   (2002-03-29 15:52) [10]

почему Open, а не ExecProc? можно убрать ParseSQL


 
Judith ©   (2002-03-29 16:52) [11]

А, так у тебя через ADO, тогда по-моему не получится.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q176936


 
{bas}   (2002-03-29 17:06) [12]

Попробуй в Query написать
select DBMS_PIPE.SEND_MESSAGE(:Param1, :Param2, :Param3) result from dual
делай Query1.Open
и потом MyRes := Query1.FieldByName("Result").AsInteger;


 
ivv ©   (2002-03-29 17:06) [13]

попробуй TQuery, типа:

Query.SQL.Text := "select DBMS_PIPE.SEND_MESSAGE (pipename , timeout , maxpipesize ) from dual";
Query.Open;

result := Query.Fields[0].AsString;


 
{bas}   (2002-03-29 17:06) [14]

Попробуй в Query написать
select DBMS_PIPE.SEND_MESSAGE(:Param1, :Param2, :Param3) result from dual
делай Query1.Open
и потом MyRes := Query1.FieldByName("Result").AsInteger;



Страницы: 1 вся ветка

Текущий архив: 2002.04.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
3-69733
ruslan_as
2002-04-01 11:28
2002.04.22
InterBase (Lookup)


6-69949
zam
2002-02-11 18:36
2002.04.22
Как перекомпилить проект из WebAppDebugger в ISAPI?


1-69848
Malder
2002-04-08 18:22
2002.04.22
Как создать переменную типа TSaveDialog ?


1-69893
ymin
2002-04-09 12:21
2002.04.22
А как сделать, чтобы форма была или на весь экран или Minimize?


1-69908
DeMoN-777
2002-04-09 03:52
2002.04.22
Добавление объекта на чужую форму