Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

Подскажите с OraQuery   Найти похожие ветки 

 
Raven   (2003-09-11 15:12) [0]

КАК запустить хранимую процедуру из OraQuery (использую компоненты ODAC).


 
Reindeer Moss Eater   (2003-09-11 15:13) [1]

TOraStoredProc не разрешают использовать?

begin
имя(параметры);
end;


 
Raven   (2003-09-11 15:15) [2]

В том то и дело... Мне нужно использовать эту процедуру в FastREport а там нет TOraStoredProc... есть только Oraquery


 
Reindeer Moss Eater   (2003-09-11 15:18) [3]

Тогда второй вариант


 
Raven   (2003-09-11 15:23) [4]

Пробовал...=(
Вроде бы запрос выполняет но в конце выдает ошибку
SQL statement doesn`t return rows.
И все


 
Reindeer Moss Eater   (2003-09-11 15:25) [5]

А так?
begin
имя(параметры);
select null from dual;
end;


 
Raven   (2003-09-11 15:29) [6]

А теперь обычный select не прокатит...
не будет он там работать...
пробовас с EXECUTE IMMEDIATE таже фигня =(


 
Reindeer Moss Eater   (2003-09-11 15:33) [7]

Слушай, я что-то не въезжаю откуда в FastReport TOraQuery?


 
Raven   (2003-09-11 15:39) [8]

Все просто поставил под него Компонент ODAC и все


 
Reindeer Moss Eater   (2003-09-11 15:40) [9]

У меня и то и другое есть, но все как-то отдельно существует.
Какой ODAC?


 
Vlad   (2003-09-11 15:44) [10]

А почему ты просто не хочешь "заглушить" Exception ?
Ведь тут очевидно, что это ODAC"овское излишество, проверять вернул Query что-то или нет.


 
Raven   (2003-09-11 15:46) [11]

FR_ODAC.DPK приятель подкинул добавляетс в FastReport TfrODACQuery и TfrODACDatebase


 
Raven   (2003-09-11 15:51) [12]

Vlad эТО НЕ ОШИБКА... Просто QUERY сопротивляется и я никак не могу ее победить


 
roottim   (2003-09-11 15:54) [13]

я так понимаю к этим компонентам можно обртиться из ФР скриптяги...
тогда пробуй так
в SmartQuery.Sql.Text
begin
MYPROCE(:P1, :P2, :RESULT1, :RESULT2);
end;

а вскрипте

q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := c;
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;


а если ф-я то..
SELECT MYFUNC(...) FROM ХЗ[DUAL]


 
roottim   (2003-09-11 15:56) [14]

блин, слона забыл...
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := c;
q1.ExecSql;
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;


 
Raven   (2003-09-11 16:05) [15]

roottim что то я не понял что ты имееш в виду...
У меня есть Хранимая PL/SQL процедура в Oracle... Есть компонента DELPHI FAstREPORT. а там есть TfrODACQuery и TfrODACDatebase....

И я ODACQuery.SQl хочу запустить хранимую процедуру... но нисего не получается си. выше


 
Reindeer Moss Eater   (2003-09-11 16:08) [16]

TOraQuery.ExecSQL

Ругается что "SQL statement doesn`t return rows" ?


 
Raven   (2003-09-11 16:10) [17]

УГУ


 
Reindeer Moss Eater   (2003-09-11 16:11) [18]

Ну и "гаси" этот эксепшен.


 
DT   (2003-09-11 16:13) [19]

наверное, в процедуре д.б. выходной пар-р типа cursor


 
Vlad   (2003-09-11 16:14) [20]

Вот и я говорю. Во всех нормальных Query такое возможно.
Один только ODAC решил выпендриться с проверкой возвращаемых строк. ИМХО, надо гасить !


 
slgeo   (2003-09-11 16:15) [21]

Вы предлагаете исходники компонента переписать?


 
Vlad   (2003-09-11 16:16) [22]

>slgeo (11.09.03 16:15) [21]
try except для чего изобрели ?


 
roottim   (2003-09-11 16:22) [23]

я так пологаю на OnPrint некого элемента FR вешается обработчик для получения неких данных через ODAC для их дальнейшего изображения.
пусть у тебя будет
TfrODACQuery c именем .Name := "q1";

на OnPrint элемениа

begin
q1.SQL.Text := "begin MYPROCE(:P1, :P2, :RESULT1, :RESULT2); end;"
// это твои входные параметы IN
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := 12;
q1.ExecSql;
// это твои выходные данные
a := q1.ParamByName("RESULT1").AsInteger;
b := q1.ParamByName("RESULT2").AsString;
// а дальше незнаю что ты хочеш с ними делать
// например
memo1.Text := b;
end;


так предпологаю я...
а еслиб вы мне их закинули на roottim@electro.tchercom.ru,
я бы сказал точнее :), если не жалко конечно...
хотя эти fr интересно зависят от моих ODAC, или нет...
если независят то какая верси ODAC использовалась для внедрения в FR компоненты


 
Raven   (2003-09-11 16:30) [24]

BEGIN
MY_PROCEDURE(...)
EXCEPTION
WHEN OTHERS THEN
NULL;
END;

НЕ ПРОКАТЫВАЕТ =(


 
Vlad   (2003-09-11 16:32) [25]

Чего ты творишь ?
В дельфи на ExecSql обкладывай try except !


 
Raven   (2003-09-11 16:34) [26]

ROTTIM

ХРАНИМАЯ ПРОЦЕДУРА ПРОИЗВОДИТ СЛОЖНУЮ ОБРАБОТКУ ДАННЫЕ ИЗ РАЗНЫХ ТАБЛИЦ, ЧТО НЕЛЬЗЯ СДЕЛАТЬ SQL ЗАПРОСАМИ, И ЗАПОЛНЯЕТ НЕКОТОРУЮ ВРЕМЕННУЮ ТАБЛИЦУ....
МНЕ НУЖНЫ ДАННЫЕ ИЗ ЭТО ТАБЛИЦЫ ДЛЯ СОСТАВЛЕНИЯ ОТЧЕТА


 
Raven   (2003-09-11 16:37) [27]

ВЛАД
МНЕ ВЫДАЕТ ПРЕДУПРЕЖДЕНИЕ НЕ DELPHI А ORACLE


 
Reindeer Moss Eater   (2003-09-11 16:38) [28]

Перед выполнением отчета выполняем sp не средствами FastReport.
В FastReport читаем данные из уже готовой таблицы.


 
Raven   (2003-09-11 16:38) [29]

ПРОСЬБА ТЕМ КТО НЕ РАБОТАЛ В FASTREPORT НЕ СОВЕТОВАТЬ ТАК КАК НЕ ПОЙМУТ


 
roottim   (2003-09-11 16:39) [30]


> ХРАНИМАЯ ПРОЦЕДУРА ПРОИЗВОДИТ СЛОЖНУЮ ОБРАБОТКУ ДАННЫЕ ИЗ
> РАЗНЫХ ТАБЛИЦ, ЧТО НЕЛЬЗЯ СДЕЛАТЬ SQL ЗАПРОСАМИ, И ЗАПОЛНЯЕТ
> НЕКОТОРУЮ ВРЕМЕННУЮ ТАБЛИЦУ....
> МНЕ НУЖНЫ ДАННЫЕ ИЗ ЭТО ТАБЛИЦЫ ДЛЯ СОСТАВЛЕНИЯ ОТЧЕТА

вот эти слова должны первые посте стоять... откуда мне то знать чего твоя процедура делает...

ну незнаю на диалоге на батон вешай обработчик
begin
q1.SQL.Text := "begin MYPROCE(:P1, :P2); COMMIT; end;"
// это твои входные параметы IN
q1.ParamByName("P1").AsString := "T";
q1.ParamByName("P2").AsInteger := 12;
q1.ExecSql;
end;


и что ничего не работает ??


 
roottim   (2003-09-11 16:42) [31]

это не код delphi а скрипт на батоне FR Dialog


 
Raven   (2003-09-11 16:43) [32]

Reinder

Похоже только так =(


 
slgeo   (2003-09-11 16:44) [33]

to roottim
такой код в Fast-e не прокатит


 
Vlad   (2003-09-11 16:44) [34]

Да едрён батон !
>Вроде бы запрос выполняет но в конце выдает ошибку
>SQL statement doesn`t return rows.
Твои слова ? Запрос значит выполняет все таки ? Т.е. хранимка отрабатывает ?
Если да то
try
ExecSql;
except
end;
Кстати, если это Оракл тебе возращает такую ошибку (во что я слабо верю), значит ищи баг в хранимой процедуре ! ИМХО, где-то NO_DATA_FOUND закралось.


 
Raven   (2003-09-11 16:59) [35]

ХРАНИМАЯ ПРОЦЕДУ РАБОТАЕТ НОРМАЛЬНО ПРОВЕРЯЛ В ЖАБЕ(TOAD)


 
roottim   (2003-09-12 08:28) [36]


> такой код в Fast-e не прокатит

естестенно такой не покатит, но ведь у меня нет исходников на фрОДАК
я смотрел реализацию фрДОА.
св-ва params, SQL и ExecSQL там зарегистрированы...
а что есть в его компонентах.. хз.. могу толькоп редполагать..

2Raven
либо реализация фрОДАК у вас кривая (помоему она не входит в пак_адд_он, видимо нетестирования самопальная), либо...



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

Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.011 c
1-3850
Alexandr Bratunets
2003-09-19 10:54
2003.10.02
FileListBox.FileName


1-3987
AlexKniga
2003-09-19 12:30
2003.10.02
Подкиньте перевод WinNT.h на pascal


14-4129
хз
2003-09-11 19:18
2003.10.02
Менталитет или лень?


1-3862
DimChan
2003-09-19 07:27
2003.10.02
Переменные


3-3776
MVVD
2003-09-11 15:42
2003.10.02
Interbase Console





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский