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

Вниз

Как вернуть датасет из хранимой процедуры Oracle?   Найти похожие ветки 

 
Icehand   (2002-11-19 12:58) [0]

Здравствуйте все!
Есть у меня ХП, например SELECT * INTO A FROM B.
Как передать результат выполнения в DBGrid или вообще во
что-нибудь делфячье?


 
Карелин Артем ©   (2002-11-19 13:04) [1]

Я пользуюсь FireBird, но принципы должны быть одинаковы.
Если используется ХП возвпащающая набор данных, то юзаем кверь. Параметры ХП передаются в теле запроса кверя сразу за именем ХП внутри круглюх скобок.


 
Icehand   (2002-11-19 13:31) [2]

А что за Firebird можешь рассказать? И ХП у меня допустим без
параметров. И база оракляная.


 
Карелин Артем ©   (2002-11-19 13:33) [3]

Смотри Ibase.ru

Если параметров нет, то скобки вроде как не нужны.


 
Icehand   (2002-11-19 13:39) [4]

Понимаешь, я вот когда в оракле создаю ХП типа SELECT...оно
хочет чтобы я делал SELECT..INTO ABC. Это имеет значение? И
зачем это вообще нужно?


 
Карелин Артем ©   (2002-11-19 13:51) [5]

Вообще-то это обязательно в FireBird.
вот пример из него:

CREATE PROCEDURE GETLASTROW(
RETURNS (RESULT INTEGER)//тут перечисление всех возвращаемых полей.
AS
BEGIN
FOR SELECT MyField, MyField2
FROM MyTable
WHERE (...)
ORDER BY MyField DESC INTO :RESULT{а это собственно возвращаемое значение} DO
BEGIN
suspend;//ну а с помощью этого возвращаем набор данных
END;
end

Так вот перечисляешь то, что возвращаешь внутри RETURNS(.. с указанием типа) и внутри INTO {тут то же самое, что и в RETURNS, но с двоеточием и без типа}, помешаещь внутрь цикла FOR SELECT и добавляешь Suspend по вкусу.
Вот вроде и все для самого начала.


 
Val ©   (2002-11-19 13:52) [6]

> Карелин Артем © (19.11.02 13:04)

> Я пользуюсь FireBird, но принципы должны быть одинаковы.

принципы разные, по крайней мере до Oracle 8.1.6.

>Icehand (19.11.02 12:58)
какими компонентами доступа пользуетесь?


 
Карелин Артем ©   (2002-11-19 14:01) [7]

>> принципы разные, по крайней мере до Oracle 8.1.6
В (19.11.02 13:04) я писал не про принципы построения ХП, а про отображение данных из хранимой процедуры стандартными компонентами. Поэтому (19.11.02 13:51) скорее всего не заработает.
Что же до компонентов, то люди пользуются DirectOracleAccess и ZeosDB(Название точно не помню).

Вот така поправка с добавкой.


 
{bas} ©   (2002-11-19 14:01) [8]

смотри в хелпе ref cursor


 
Val ©   (2002-11-19 14:32) [9]

>Карелин Артем © (19.11.02 14:01)
где вы видели в моем посте хоть слово о принципах построения ХП?
я говорю вам о том, что select from my_oracle_proc сделать не удастся. в оракле, она возвращает курсор в OUT параметрах, при желании извлечь из нее нд.
>Что же до компонентов...
вообще-то я спрашивал у автора, а люди пользуются чем угодно.


 
Карелин Артем ©   (2002-11-19 14:40) [10]

(19.11.02 14:01) - эт скорее автору. Ну и уточнение моих постов...


 
Помогите человеку. Страдает ведь.   (2002-11-20 11:52) [11]

сабж


 
perov ©   (2002-11-20 14:48) [12]

нечто типа
создаешь два типа
1. объект, где описываешь, поля которые будут выбираться
create type tRec as (id number, name varchar(2));
2. создаешь таблицу
create type tTab as table of tRec;
3. create function test returning tTab as
res tTab = tTab();
i integer;
begin
for i in 1..100 loop
res.extend;
res(i) := tRec(i, "test " ||i);
end loop;
return(res);
end;
4.сам селект
select * from table(cast test as ttab)


 
EternalWonderer   (2002-11-20 16:21) [13]

http://ln.com.ua/~openxs/projects/oracle/ora011.html


 
Icehand   (2002-11-22 20:12) [14]

А если о практике этого вопроса спросить, то есть при организации цикла в Делфи нормальная производительность?
А то может весь прикол серверного хранения потеряется?
Хотя вообще СПАСИБО ВСЕМ ОГРОМНОЕ!!!


 
Icehand   (2002-11-22 20:16) [15]

Я вот скачал тут триал-версию ODAC от Core Labs.
Крякнуть ее можно? Или аналогичные компоненты скачать где-нибудь
бесплатные?



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

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

Наверх




Память: 0.5 MB
Время: 0.018 c
14-36398
Владик_1
2002-11-18 17:22
2002.12.12
Windows 3 инсталяция Где?


1-36221
Batik
2002-11-30 19:18
2002.12.12
Реакция на клавишы....


1-36085
Граф
2002-12-02 03:12
2002.12.12
кто-нибудь использовал TThreadList для создания пула потоков


4-36488
PycUS
2002-11-01 01:24
2002.12.12
Рабочий стол


7-36423
valmont
2002-10-08 14:30
2002.12.12
запись в MBR