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

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

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


Наверх

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