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

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

Oracle [D7]


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

nnnicky ©   (2008-12-16 12:19:00) 

Добрый день!
Есть некая функция, которая вызывается через экшен.
Делаю так: в компонент OraQuery пишу запрос:

SELECT *
FROM TABLE (SVB_NETTING.build_netting_list  
(
 iNETTINGNUMBER IN NUMBER,
 dDATENETTING IN DATE,
 sUSERCREATE IN VARCHAR2

))RETURN RESULT_ERROR_NT

Соответственно вызываю:
procedure TfmHBBankNetting.act_BuildListExecute(Sender: TObject);
begin
 inherited;
OraQuery.Execute;
end;

Нужно сделать: в случае если RESULT_ERROR_NT содержит записи показать в отдельном окне пользователю.
Вопрос простенький наверно, но что-то пока не пойму как сделать.



nnnicky   (2008-12-30 09:02:00) [1]

тема открыта... работает в developer всего лишь... )


nnnicky   (2008-12-26 11:01:00) [2]


> оттестируй запрос с параметрами в pl/sql developer, потм
> будем с "выбором строки из Grida их читать" разбираться


работает


Petr V. Abramov   (2008-12-25 17:35:00) [3]


> nnnicky   (25.12.08 16:16) [50]

оттестируй запрос с параметрами в pl/sql developer, потм будем с "выбором строки из Grida их читать" разбираться


nnnicky   (2008-12-25 16:16:00) [4]

procedure  TfmHBListBank.Set_DataSet(bActive : Boolean);
var  iID : integer;
iData : STRING;
i   : integer;
iSelectedCount : integer;
begin
iSelectedCount := fmHBBankNetting.gBaseDBtv.Controller.SelectedRecordCount;
if iSelectedCount < 1 then exit;
 if iSelectedCount > 0 then
 begin
for i := 0 to iSelectedCount -1 do
iID := fmHBBankNetting.gBaseDBtv.Controller.SelectedRecords[i].Values[fmHBBankNetting.g BaseDBtv.GetColumnByFieldName('ID').Index];
DSHB.ParamByName('NETTINGNUMBER').AsInteger := iID ;
end;


Параметры из другой таблицы... Нужно выбором строки из Grida их читать. Т.е. выбираем строку с параметрами, жмем кнопку и вызываем процедуру.  Параметры не видит...


Кщд   (2008-12-25 08:03:00) [5]

>nnnicky   (24.12.08 12:11) [42]


SELECT *
FROM TABLE (cast(SVB_BLIZKO_NETTING.build_banknetting_list  
( :NETTINGNUMBER,
:DATENETTING,
 user
) as YourFunctionsType))


nnnicky   (2008-12-24 16:19:00) [6]

ошибка возникает при использовании параметров... Ну по всякому уже и всеравно никак :(


Petr V. Abramov   (2008-12-24 16:11:00) [7]

это связано с параметрами или нет???


nnnicky   (2008-12-24 15:18:00) [8]

ORA-22905 cannot access rows from a non-nested table item

Cause: An attempt was made to access rows of an item whose type is not known at parse time or that is not of a nested table type.

Action: Use CAST to cast the item to a nested table type.


Так и в таблице такой тип....


nnnicky   (2008-12-24 15:13:00) [9]

ORA - 22905: Cannot access rows from a non-nested table item


sniknik   (2008-12-24 12:47:00) [10]

> передавайте дату, а не строку
у него не строка вообще то, насколько вижу, а число, результат странных вычислений...


Кщд   (2008-12-24 12:35:00) [11]

>nnnicky   (24.12.08 12:11) [42]
приводите оригинальный текст ошибки

>dsHB.Params[1].AsDate := '08-12-2008';
передавайте дату, а не строку


nnnicky   (2008-12-24 12:11:00) [12]

SELECT *
FROM TABLE (SVB_BLIZKO_NETTING.build_banknetting_list  
( :NETTINGNUMBER,
 :DATENETTING,
  user
))



dsHB.Params[0].AsNumber := 10;
dsHB.Params[1].AsDate := 08-12-2008;


Не работают параметры... Тип Number и Date. Когда явно указываю значения - все ок. А так говорит нет таких данных


Petr V. Abramov   (2008-12-22 16:45:00) [13]


> Кщд   (22.12.08 10:08) [40]

так и drop column только аж в 8-й версии появилось.
я использую, от кучи другого гимра избавляет


Кщд   (2008-12-22 10:08:00) [14]

>Petr V. Abramov ©   (19.12.08 14:45) [39]
>не надо, alter type нормально работает, по крайней мере, на добавление атрибутов
с добавлением всё в порядке - cascade или invalidate - и вперед
проблемы начинаются с drop attribute и целой череды ограничений, связанных с ним

плюс к этому до сих нерешенная проблема с одноименными типами в разных схемах одного инстанса
всё это, конечно, обходится, но желание задействовать ООП механизм Oracle в продуктиве уменьшает до нуля


Petr V. Abramov   (2008-12-19 14:45:00) [15]


> Кщд   (19.12.08 14:10) [38]

>при изменении базового типа необходимо дропать ВСЁ дерево наследований > и прокатывать заново
не надо, alter type нормально работает, по крайней мере, на добавление атрибутов

> не дай боже поставить final-тип в качестве поля таблицы...
а что будет?


Кщд   (2008-12-19 14:10:00) [16]

>в 10-ке все очень культурно-мультурно работает
даже в 10-ке при изменении базового типа необходимо дропать ВСЁ дерево наследований и прокатывать заново
не дай боже поставить final-тип в качестве поля таблицы...
а без этого сам смысл использования теряется - проще пользоваться pipelined + pl/sql collections
т.е. как не было вменяемой поддержки типов, так и нет
и, судя по metalink, и не предвидится


Petr V. Abramov   (2008-12-19 11:19:00) [17]


> Кщд   (19.12.08 10:50) [36]


> если придираться по-серьезному, то больше улыбает оптимизм
> решений на create type,

в 10-ке все очень культурно-мультурно работает, фактическ ине реализованы только foreign ключи на поля подтипов. В 8-ке, да, была жесть с объектными типами, 9-ку я пропустил.


Кщд   (2008-12-19 10:50:00) [18]

>Petr V. Abramov ©   (18.12.08 17:51) [35]
>не нужен там begin ... end, чай не паскаль.
но на производительность-таки этот анонимный блок не влияет)

>select ... bulk collect into быстрее
мне совсем не верится, что автор привел реальный код ф-ции и в цикле нет exit when.
иначе, не совсем понятно, а зачем, собственно, нужна такая ф-ция?

если придираться по-серьезному, то больше улыбает оптимизм решений на create type, поддержку которого oracle задекларировал, видимо, в чисто маркетинговых целях, т.к. до сих пор нет корректной поддержки работы с ним
и отдельный большой привет тем системам, что начали использовать наследование таких объектов в oracle


Petr V. Abramov   (2008-12-18 17:51:00) [19]


> nnnicky   (18.12.08 17:29) [34]

не нужен там begin ... end, чай не паскаль.
и for nrec ... loop крутить ни к чему, select ... bulk collect into быстрее, если записей немного, если много, то fetch ... bulk collect into limit N


nnnicky   (2008-12-18 17:29:00) [20]


> улыбает :)


чем же вас так улыбнуло?


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

Наверх

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