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

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

Не выполняется запрос к VIEW [D6]


Ольга ©   (2005-08-01 17:53:00) 

Есть VIEW rdgreader.getrdg, в SQL Plus запрос к нему работает.
Выбираю данные из программы:

ADOQuery1.SQL.Text:='select * from rdgreader.getrdg where nplan=:np and dt>:beg and dt<=:end)';
ADOQuery1.Parameters.ParamValues['np']:=StrToInt(Edit1.Text);
ADOQuery1.Parameters.ParamValues['beg']:=DateTimePicker1.Date;
ADOQuery1.Parameters.ParamValues['end']:=DateTimePicker2.Date;
ADOQuery1.Open;

выходит ошибка: ORA-00932: inconsistent datatypes

Это что - Оракл не понимает дату DateTimePicker? Может надо как то преобразовать?


ANB   (2005-08-02 12:33:00) [1]


> Ольга   (01.08.05 18:20) [5]
- сделай через AsString. Или AsDateTime. Преобразование будет автоматическое. Проверь типы параметров.


Ольга   (2005-08-01 18:20:00) [2]

Ну вот, Оракл у клиента отрубился. Попробую завтра.
На счет каких-либо преобразований - все сложно. Поставили такую задачу: состыковать чужую-1 программу (трогать не моги) с чужой-2 базой (тоже трогать не моги). Приходится "левой ногой чесать правое ухо".
Если завтра не получится, опять буду домогаться, sorry.
Быстрей бы с этим делом закончить и забыть, как страшный сон.


Desdechado   (2005-08-01 18:14:00) [3]

может, лучше заменить вариантный
ParamValues['beg']
на приведенный к конкретному типу
ParamByName('beg').AsSQLTimeStamp

кстати, типы DateTime и SQLTimeStamp несовместимы, надо преобразование делать


Fay   (2005-08-01 18:05:00) [4]

2 Ольга   (01.08.05 17:53)
Лучше всего преобразовать dbGO в DOA 8)


Fay   (2005-08-01 18:01:00) [5]

А так ?
ADOQuery1.SQL.Text:='select * from rdgreader.getrdg where nplan=:np and dt > to_date(:beg, 'yyyymmdd') and dt<=to_date(:end, 'yyyymmdd'))';
ADOQuery1.Parameters.ParamValues['np']:=StrToInt(Edit1.Text);
ADOQuery1.Parameters.ParamValues['beg']:=FormatDate(DateTimePicker1.Date, 'yyyymmdd');
ADOQuery1.Parameters.ParamValues['end']:=FormatDate(DateTimePicker2.Date, 'yyyymmdd');
ADOQuery1.Open;


Ega23   (2005-08-01 18:00:00) [6]

А как Oracle воспринимает тип datetime? Это я к тому, что у Borland и MS SQL, к примеру, трактовка стартовой даты различается в 2 дня.
Может и с Oracle что-нибудь такое?


Наверх

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