![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL запрос на вывод системной даты [D7, Paradox]
Draught © (2004-05-27 09:51:00)При работе с SQL сервером все проходит гладко, запрос:
select * from table
where date<>getdate()
а вот при работе с таблицей Paradox
Query.SQL.Text:='select * from table where date<>getdate()'
это уже не проходит, я так понимаю getdate- функция самого SQL сервера, т.е. сам сервер возвращает системную дату, а как быть с локальной таблицей, тут нет сервера, но в запросе нужна текущая дата.
DenK_vrtz (2004-05-27 11:41:00) [1]см. [2]
Draught (2004-05-27 11:39:00) [2]2DenK_vrtz
"раз пошла такая пьянка - режь последний огурец"
что делать??? Как выходить из такой ситуации???
DenK_vrtz (2004-05-27 11:10:00) [3]>Draught © (27.05.04 10:45) [11]
исходя из Query.sql.append('select * from table where date<>'+quotedstr(dateToStr(Date)));
Вы никогда не имели проблем с разным форматом дат? Будут!
Соловьев (2004-05-27 11:01:00) [4]
> 13] Draught © (27.05.04 10:56)
посыпаю голову пеплом
действительно.
Draught (2004-05-27 10:56:00) [5]Соловьев
использую БДЕ
Type mismatch in expression. - ошибка типов 'now'- не является датой, дата обычно выглядит так '27.05.2004'
select t.* from table t where t."date"<> '27.05.2004'- будет работать, а если 'now'то не будет!!! Если убрать '', то ошибка с неизвестным полем, поля nowне существует.
Можешь попробовать SQL explorer набрать в тексте sql запроса select t.* from table t where t."date"<>'now' в результате будет ошибка типов...
Соловьев (2004-05-27 10:48:00) [6]
> все-таки нету, не нашел я.
> Я использую простую связку
> DS, QUERY и локальная таблица...
Врешь :)
Есть.
простую связку? в каком смысле простую? БДЕ используешь или АДО?
Еще раз обращаю внимание на то что date - зарезервированое слово и его как имя поля можно использовать только взяв в дволйные кавычки.
В дизайне занеси :
select t.* from table t where t."date"<>'now'
В рантайме:
Query.active:=false;
Query.active:=true;
Draught (2004-05-27 10:45:00) [7]2Соловьев
все-таки нету, не нашел я.
Я использую простую связку
DS, QUERY и локальная таблица...
выход я нашел
при старте программы:
Query.active:=false;
Query.sql.clear;
Query.sql.append('select * from table where date<>'+quotedstr(dateToStr(Date)));
Query.active:=true;
Соловьев (2004-05-27 10:33:00) [8]
> 5] Draught © (27.05.04 10:24)
если ADO - то попробуй Now()
Соловьев (2004-05-27 10:28:00) [9]
> 7] Плохиш (27.05.04 10:27)
??? есть
это ты по справке посмотрел?
Sandman25+1 (2004-05-27 10:28:00) [10]Судя по LocalSQL.hlp, в BDE нет аналога getDate
Плохиш (2004-05-27 10:27:00) [11]Ну нету в localsql функции возвращающей текущую дату, нету.
Используй [2]
Соловьев (2004-05-27 10:26:00) [12]
> [5] Draught © (27.05.04 10:24)
осталось выяснить компоненты доступа.
Draught (2004-05-27 10:24:00) [13]2Соловьев
ошибка, в данном случае мы пытались вместо значения даты подсунуть значение, равное 'now' - не текущая дата, а набор из 3-х букв
Type mismatch in expression.
Соловьев (2004-05-27 10:10:00) [14]'now'
select t.* from table t where t."date"<>'now'
Draught (2004-05-27 10:07:00) [15]2Соловьев
'select * from table where date<>now'
не работает
Invalid field name 'now'
DenK_vrtz (2004-05-27 09:55:00) [16]select * from table
where table."date" <> :параметр типа дата, а как получить текущую дату в Delphi, думаю, объяснять не надо
Соловьев (2004-05-27 09:54:00) [17]Now