Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

PL/SQL - хочу странного (а может и нет)


Страницы:   1 2 3

Dennis I. Komarov ©   (2012-11-13 22:20:00) 

оракуль может подобное?
транслит:
function (a1, a2, ..., am, var b1, b2, ..., bn): TDataSet;

т.е.
FUNCTION...
in
in
out
out
RETURN

на выходе рекордсет (CURSOR наверное)

если да, то пример плз


Медвежонок Пятачок   (2012-12-07 23:38:00) [1]

положи туда адошный датапакет в xml


Dennis I. Komarov   (2012-12-07 23:06:00) [2]


> Сказано же было - на сервере - ХП, на клиенте TADODataSet
> =  TADOCommand.Execute + F1

Так вопрос, что в retern класть оракловый...

т.е. что возвращает select, и как заставить функцию возвращать это (с т.з. оракуля)


MsGuns   (2012-12-06 19:13:00) [3]

>Dennis I. Komarov ©   (05.12.12 12:26) [37]
>и как результат поймать в dataset?

Сказано же было - на сервере - ХП, на клиенте TADODataSet =  TADOCommand.Execute + F1


Кука съела ник   (2012-12-05 16:52:00) [4]

Dennis I. Komarov ©   (05.12.12 16:02) [39]

Все можно сделать, но в древнем Китае желающим странного отрубали голову.


Dennis I. Komarov   (2012-12-05 16:02:00) [5]

Т.е. результат селекта в return положить низя (в том же виде)?
Ну не возвращает результат такого селекта. А вот в SQL Novigator дает результат...


Игорь Шевченко   (2012-12-05 14:14:00) [6]

Dennis I. Komarov ©   (05.12.12 12:26) [37]

Отдельно функция, отдельно запрос на dataset


Dennis I. Komarov   (2012-12-05 12:26:00) [7]

Ладно, сменим подход... (Кстати почему?)

Тогда предположим, что out-параметров нет. Как функция должна выглядеть ( и как результат поймать в dataset)?
Select через ado не проходит, слишком сложный видимо, поэтому и нужна функция


Игорь Шевченко   (2012-12-05 11:53:00) [8]


> чтобы не делать несколько запросов к БД:


штрафуют ? в оракле подобный подход массово не применяется


Dennis I. Komarov   (2012-12-05 00:16:00) [9]


> зачем тебе одновременно и входные параметры и выходные параметры
> и набор данных ?

чтобы не делать несколько запросов к БД:
функция собирает статистику за определенное время:
ID,DateIn, DateOut - IN
Значение на начало, на конец периода - OUT
DataSet - операции


Игорь Шевченко   (2012-12-04 23:20:00) [10]

Я про другое - нафиг такая фукнция нужна ?

зачем тебе одновременно и входные параметры и выходные параметры и набор данных ?


Dennis I. Komarov   (2012-12-04 23:08:00) [11]


> А как ты себе представляешь такую процедуру и работу с ней
> ?

TAdoDataSet.Create
Connection:=
Parameters.Create(
...
Parameters.Create(
CommandText:='select
// CommandText:=bla-bla DataSet не возвращает
Active := true

или что-то в этом духе


Игорь Шевченко   (2012-12-04 22:29:00) [12]


> чет не работает


Больно слышать.

А как ты себе представляешь такую процедуру и работу с ней ?


Dennis I. Komarov   (2012-12-04 22:17:00) [13]

select * from table (bla-bla(...));чет не работает (уже находил)
как ее в DataSet загнать, что-то так и не сообразил
еще нашел объявить объект ROWTYPEи далее TABLE ofно в oracle не очень хотелось лезть.
Есть процедура, и она возвращает и out-параметры и TCursor (набор данных), а вот как этот TCursor отправить в DataSet не трогая оракуль?


Игорь Шевченко   (2012-12-04 21:56:00) [14]

http://www.google.ru/search?q=select+from+ref+cursor+delphi
http://www.delphimaster.net/view/3-86632


Dennis I. Komarov   (2012-12-04 21:37:00) [15]


TYPE TCursor IS REF CURSOR;

CREATE OR REPLACE FUNCTION bla-bla (
a_1 IN NUMBER,
a_2 IN VARCHAR,
a_3 OUT NUMBER,
a_4 OUT NUMBER
) RETURN TCursor


Как получить из нее набор данных (TDataSet) в Delphi?


Игорь Шевченко   (2012-11-23 22:14:00) [16]


> Стандартный формат даты ORACLE для ввода и вывода имеет
> вид DD-MON-YY, например:


Этот формат зависит от настроек сеанса, сервера, базы данных.

"The default date format for an Oracle date value is derived from the NLS_DATE_FORMAT and NLS_DATE_LANGUAGE initialization parameters"

http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006006

Любите доку, источник знаний


Dennis I. Komarov   (2012-11-23 21:26:00) [17]

Пардон, а вот:

Тип данных DATE

Тип данных DATE хранит значения в виде точек времени (т.е. дату и время). Тип данных DATE запоминает год (включая век), месяц, день, часы, минуты и секунды. ORACLE может хранить даты в диапазоне от 1 января 4712 года до н.э. до 31 декабря 4712 года нашей эры. Если в маске формата не указано BC (до н.э.), предполагается по умолчанию наша эра (AD).

ORACLE использует для хранения дат собственный внутренний формат. Данные дат хранятся в фиксированных полях длиной семь байт, соответствующих веку, году, месяцу, дню, часу, минуте и секунде.

Стандартный формат даты ORACLE для ввода и вывода имеет вид DD-MON-YY, например:

'13-NOV-92'


Dennis I. Komarov   (2012-11-23 21:20:00) [18]


> ANSI стандарт даты в виде литерала: DATE 'YYYY-MM-DD'

Да, знаю... но ведь тоже стринг...
(и если не изменили ручками, а ведь могут)


Игорь Шевченко   (2012-11-23 20:39:00) [19]


> Может есть другие встроенные функции?


ANSI стандарт даты в виде литерала: DATE 'YYYY-MM-DD'


Dennis I. Komarov   (2012-11-23 19:05:00) [20]

Спасибо!

Еще вопрос:
Как приводите TDateTime к оракловой DATE? Что-то мне не ндра каждый раз делать строку и конвертировать to_date.
to_date(..., 'J') ближе, но тоже не красиво...
Может есть другие встроенные функции?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо