powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос о запросе на SQL к IB (+ Delphi)
4 сообщений из 4, страница 1 из 1
Вопрос о запросе на SQL к IB (+ Delphi)
    #32163841
HELLOWEEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Вот Runtime запрос, так сказать, из программы:

procedure TForm1.N10Click(Sender: TObject);
begin
with DataModule1.IBQuery1 do
begin
Close;
UnPrepare;
SQL.Clear;
SQL.Text := 'SELECT * FROM MAIN WHERE (RENTUNTIL <= ' + DateToStr(Now) + ')';
Prepare;
Open;
end;
end;

В таблице поле RENTUNTIL = тип DATE

При клике ошибка:

Dynamic SQL Error
SQL error code =-104
Token unknown - line 1, char 392.


Где я не прав в запросе?

Хочу просто выбрать записи где поле RENTUNTIL (тип DATE) меньше или равно текущей дате (сейчас)

Спасибо за помощь!
...
Рейтинг: 0 / 0
Вопрос о запросе на SQL к IB (+ Delphi)
    #32163849
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так
Код: plaintext
1.
2.
SQL.Text := 'SELECT * FROM MAIN WHERE (RENTUNTIL <= ''' + DateToStr(Now) + ''')'; 


дата должна быть в ковычках
...
Рейтинг: 0 / 0
Вопрос о запросе на SQL к IB (+ Delphi)
    #32163851
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SQL.Text := 'SELECT * FROM MAIN WHERE (RENTUNTIL <= ''' + DateToStr(Now) + ''')'; 

Как минимум дату возьми в кавычки. А лучше через параметры примерно так:
Код: plaintext
1.
2.
3.
4.
5.
SQL.Clear; 
SQL.Text := 'SELECT * FROM MAIN WHERE (RENTUNTIL <=:p0)'; 
Prepare; 
params[ 0 ].asdatetime:=trunc(now);
Open; 
...
Рейтинг: 0 / 0
Вопрос о запросе на SQL к IB (+ Delphi)
    #32164514
HELLOWEEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, спасибо - работает, но я вот ещё что раскопал в Developers Guide для IB - также работает:

...
IBQuery1.SQL.UnPrepare;
IBQuery1.SQL.LoadFromFile('filename.sql');
IBQuery1.SQL.Prepare;
...


Содержание 'filename.sql':

SELECT * FROM tablename WHERE (datefield <= 'TODAY');

вот TODAY - есть системное слово в IB (есть также - TOMORROW, NOW, YESTERDAY)



Всем спасибо
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос о запросе на SQL к IB (+ Delphi)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]