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

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

Oracle 8 и Oracle 9 [D5]


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

nomad ©   (2004-02-03 13:06:00) 

Я написал отчет на Fastreport для Oracle 8 там вызываю процедуру у которой OUT параметр курсор, для Oracle 8 все работает, а на 9 пишет Ora06550 wronge number or types in call MyProc
Может кто знает как исправить.


nomad   (2004-02-05 11:20:00) [1]

2 Reindeer Moss Eater © (05.02.04 11:15) [52]
я так и хочу попробывать


nomad   (2004-02-05 11:18:00) [2]

2Sergey13 © (05.02.04 11:10) [51]

у меня никак не определен тип возвращаемого курсора:)
но ведь работает


Reindeer Moss Eater   (2004-02-05 11:15:00) [3]

Короче.

Идем на машину, на которой отчет работает.
Переключаем на этой машине программу на сервер с девяткой.
Если работает, то причина в настройках клиента Оракла на второй машине.
Если не работает - причина в разных процедурах разных курсорах и разных объектах по которым курсор строится.

Такая кофейная гуща как правило эффективна.


Sergey13   (2004-02-05 11:10:00) [4]

2nomad © (05.02.04 10:50) [46]
А какой тип у возврашаемого курсора?
Давно это было, но помнится я делал на 8 примерно так:
cursor tkv is
select * from my_table;
type tkv_rec is ref cursor return tkv%ROWTYPE;

Можно и без описания tkv (у меня в жизни там был сложный селект по нескольким таблам), а дать My_Table%ROWTYPE если по одной таблице.


Reindeer Moss Eater   (2004-02-05 11:02:00) [5]

А я понял, что разница в серверах 8 и 9. И поскольку сервера разные, то и процедуры могут отличаться.

Даже если они и отличаются, ошибка рождается не в процедуре, иначе бы она и на сервере не работала.
А она работает там без ошибок ([30])


nomad   (2004-02-05 11:00:00) [6]


> Val © (05.02.04 10:54) [48]
Delphi5 , FastReport 2.5 ADoQuery


Val   (2004-02-05 10:54:00) [7]

>nomad © (05.02.04 10:30) [43]
скажите, также какими компонентами доступа к БД вы оперируете


Sergey13   (2004-02-05 10:52:00) [8]

2Reindeer Moss Eater © (05.02.04 10:44) [45]
А я понял, что разница в серверах 8 и 9. И поскольку сервера разные, то и процедуры могут отличаться.


nomad   (2004-02-05 10:50:00) [9]

вот пакет
package types
as
type cursorType is ref cursor;
end;

скорее всего Reindeer Moss Eater © (05.02.04 10:44) [45] прав

> Если верить автору, то проблема заключается в нестыковке
> клиента и сервера по типам данных на второй машине.


Reindeer Moss Eater   (2004-02-05 10:44:00) [10]

Если верить автору, то проблема заключается в нестыковке клиента и сервера по типам данных на второй машине.

Ведь вызов процедуры и работа с курсором в plsl блоке идет нормально и на девятке и на восьмерке.


Sergey13   (2004-02-05 10:41:00) [11]

2Reindeer Moss Eater © (05.02.04 10:26) [41]
Я просто написал свое ИМХО на твой пример. 8-)

2Reindeer Moss Eater © (05.02.04 10:28) [42]
>Ошибка компиляции отпадает.
Я просто переписал выдержку из документации по Ora06550.

2nomad © (05.02.04 10:30) [43]
А где описан твой (cur out types.cursorType)? Такие вещи вроде только в пакете можно делать, где в описательной части описывается собственно курсор(создается тип), а теле процедуры он только заполняется. Может у тебя тут где то нестыковка? Хотя может я и ошибаюсь.


nomad   (2004-02-05 10:30:00) [12]

2Sergey13 © (05.02.04 08:50)
ошибка тока одна Ora06550


Reindeer Moss Eater   (2004-02-05 10:28:00) [13]

Кстати, у меня по документации (правда на 8.0.4 8-) у этого номера ошибки несколько другое название и толкование (Причина - произошла ошибка компиляции PL/SQL). Почему бы это? Ты все ошибки перечислил?

Ошибка компиляции отпадает. см. совет автору в [29] и его ответ в [30]


Reindeer Moss Eater   (2004-02-05 10:26:00) [14]

Sergey13 ©

Я не диагноз ставил.

Еслиимеем к примеруNUMBER(12,0) ....


Sergey13   (2004-02-05 08:50:00) [15]

2Reindeer Moss Eater © (04.02.04 18:55) [39]
Если бы это было так, то ИМХО вылетала бы ощибка приложения, а тут имеем Ora06550, т.е. ошибку сервера.

2nomad © (03.02.04 13:06)
Кстати, у меня по документации (правда на 8.0.4 8-) у этого номера ошибки несколько другое название и толкование (Причина - произошла ошибка компиляции PL/SQL). Почему бы это? Ты все ошибки перечислил?


Reindeer Moss Eater   (2004-02-04 18:55:00) [16]

Какой нафик тупик?

Если имеем к примеру NUMBER(12,0) на сервере, и двух клиентов ожидающих ftInteger, но у одного ENABLE INTEGERS = TRUE а у другого наоборот, то у другого будет облом. Точнее не облом, а ftFloat.

Это еще в [4] было сказано.


nomad   (2004-02-04 18:50:00) [17]

следствие зашло в тупик
(с моей стороны:))


Val   (2004-02-04 18:13:00) [18]

>nomad © (04.02.04 17:24) [36]
ну так скажите, что было, как решили-то?


nomad   (2004-02-04 17:24:00) [19]

спасибо за помощь!


Reindeer Moss Eater   (2004-02-04 17:16:00) [20]

Ну дык:

1. Разные клиенты Оракла
2. Разные BDE или что там у тебя. С их разными парамерами подключения
3. Разные экземпляры программ.


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

Наверх

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