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-04 17:14:00) [21]

вот клиентская машина разная :)


Reindeer Moss Eater   (2004-02-04 17:05:00) [22]

Если одно и то же приложение работает на одной и той же клиентской машине с двумя серверами и на девятке возникает ошибка и все что ты говоришь выше - правда, то это - чудо великое.
С большой буквы Ч.


nomad   (2004-02-04 16:58:00) [23]

одинаковые


Reindeer Moss Eater   (2004-02-04 15:59:00) [24]

сравни типы данных у полей курсора на восьмерке и на девятке.


nomad   (2004-02-04 15:38:00) [25]

на сервере все работает и на восьмерке тоже


Reindeer Moss Eater   (2004-02-04 15:32:00) [26]

да я просто хочу чтоб мне объяснили как правильно вызвать процедуру при помощи query ?

Кто-то утверждал, что на восьмерке все работает.

мне просто нужен совет.

Отложи в сторону FastReport, Delphi и проч.
Открой PLSQL developer (или что там у тебя).
Вызови свою процедуру, пройдись по курсору, в общем протестируй это прямо на сервере


nomad   (2004-02-04 15:14:00) [27]

да я просто хочу чтоб мне объяснили как правильно вызвать процедуру при помощи query ?
и никого я ни чему не учу.
мне просто нужен совет.


Reindeer Moss Eater   (2004-02-04 15:06:00) [28]

Мы с утра про ошибки в ЭТОЙ твоей процедуре с ЭТИМ списком параметров и про ошибки в ЭТОМ курсоре разговариваем?

Нафик здесь твой "test" вообще?
Что бы научить форумчан писать хранимые процедуры и пользоваться курсорами?


nomad   (2004-02-04 13:38:00) [29]

Вот к примеру процедура :
create or replace procedure test( table_name in VARCHAR2,cur out types.cursorType )

as

SQLString varchar2(2000);
begin
SQLString:="select * from "||table_name;
OPEN cur FOR SQLString;
end;

Вот так я ее вызываю:
begin
test("test");
end;


Reindeer Moss Eater   (2004-02-04 12:33:00) [30]

И где наконец текст курсора?


Reindeer Moss Eater   (2004-02-04 12:31:00) [31]

так не работает

нет такого понятия "не работает".

Есть понятие "генерируется исключение с таким-то кодом"
Есть понятие "GetLastError вернул не нулевое значение"
и т.д.


nomad   (2004-02-04 12:29:00) [32]

begin
get_scripts_names ( "qwe",TO_DATE("2004.02.04 00:00:00", "YYYY.MM.DD HH24:MI:SS"),to_date ("2004.02.04 23:59:59","yyyy.mm.dd hh24:mi:ss"));
end;
так не работает


Reindeer Moss Eater   (2004-02-04 12:24:00) [33]

как написать вызов этой процедуры в Query чтобы все было правильно?

А разве уже сейчас что-то неправильно?
Передаешь параметры, курсор строится в соответствии с параметрами, курсор возвращается.


nomad   (2004-02-04 12:18:00) [34]

как написать вызов этой процедуры в Query чтобы все было правильно?
я не понимаю.


Reindeer Moss Eater   (2004-02-04 12:05:00) [35]

Ты не знаешь как передаются параметры?

Ты не видишь куда именно подставляется четвертый параметр в курсоре?

Ты не можешь определить его значение, которое не вернет пустой датасет?


nomad   (2004-02-04 12:01:00) [36]

хорошо , но как тогда его передать чтобы не было command text do not return recordset

?


Reindeer Moss Eater   (2004-02-04 11:58:00) [37]

если указать 4 параметр то command text do not return recordset

У процедуры четвертый параметр - со значением по умолчанию.
Если его передать явно, условие where ничего не выбирает. (случай из [16])

Если его не передать, в where передается значение по умолчанию и тип этого умолчания не подходит для условия курсора.

тогда почему на oracle 8 все работает,а на 9 нет
Это как минимум два разных сервера, две разных процедуры и два разных курсора.


nomad   (2004-02-04 11:46:00) [38]

тогда почему на oracle 8 все работает,а на 9 нет


Reindeer Moss Eater   (2004-02-04 11:45:00) [39]

Либо переданные параметры в процедуру используются в параметрах курсора и его where с этими параметрами конфликтует


nomad   (2004-02-04 11:45:00) [40]

если указать 4 параметр то command text do not return recordset


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

Наверх

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