Пожалуйста. Подскажите где ошибка в синтаксисе запроса к БД Oracle в котором мне надо из указанного пользователем поля отдела выбрать данные в промежутке дат. Ранее обращаясь к Access я дел так:
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM Tab_Izv where Otdel like '+#39+ bsSkinComboBox1.Text+ '%' +#39+
' AND Data between '+ inttostr(Ot)+' and '+inttostr(Doo) +' ORDER BY Nomer' );
Query1.Active:=True;
и все отлично работает но вот к Oracle так не получается пробую так:
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * Tab_Izv where OTDEL like '+#39+ bsSkinComboBox1.Text+ '%' +#39+
' AND DATA between (to_char('+ Ot+','+''''+'dd.mm.yyyy'+''''+')) and (to_char('+ Doo+','+''''+'dd.mm.yyyy'+''''+')) ORDER BY NOMER' );
Query1.Active:=True;
Вопрос
Олег Киреев
Здравствуйте уважаемые члены сообщества.
Пожалуйста. Подскажите где ошибка в синтаксисе запроса к БД Oracle в котором мне надо из указанного пользователем поля отдела выбрать данные в промежутке дат. Ранее обращаясь к Access я дел так:
var Ot,Doo: Integer;
Ot:=Trunc(bsSkinDateEdit7.Date);
Doo:=Trunc(bsSkinDateEdit8.Date);
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM Tab_Izv where Otdel like '+#39+ bsSkinComboBox1.Text+ '%' +#39+
' AND Data between '+ inttostr(Ot)+' and '+inttostr(Doo) +' ORDER BY Nomer' );
Query1.Active:=True;
и все отлично работает но вот к Oracle так не получается пробую так:
var Ot,Doo: String;
Ot:=bsSkinDateEdit7.Text;
Doo:=bsSkinDateEdit8.Text;
Query1.Active:=False;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * Tab_Izv where OTDEL like '+#39+ bsSkinComboBox1.Text+ '%' +#39+
' AND DATA between (to_char('+ Ot+','+''''+'dd.mm.yyyy'+''''+')) and (to_char('+ Doo+','+''''+'dd.mm.yyyy'+''''+')) ORDER BY NOMER' );
Query1.Active:=True;
Ругается на пропуск оператора. Где же ошибка???
С Уважением. Олег.
Ссылка на комментарий
13 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.