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

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

Сравнение дат [D7, MSAccess]


Страницы:   1 2

xroot ©   (2005-06-05 17:22:00) 

Я пытаюсь вытаскивать данные таблицы с датой меньшей сегодняшней с помощью TQuery, но вылетает ошибка. База Microsoft Access, исх. поле имеет формат Дата/Время.
Напишите простейший пример.


msguns   (2005-06-06 10:55:00) [1]

>sniknik ©   (06.06.05 10:49) [23]

Вот и я не понял, зачем там так много квестов - можно подумать, что написана чушь.


sniknik   (2005-06-06 10:49:00) [2]

это наверное праведное возмущение что дату передают строковым параметром... ;о)

но в общемто это вполне легально... к сожалению. в аксесе есть автоприведения типов т.что такая запись вполне легитимна. правда автоприведение работает не во всех случаях, и часто дает неверные результаты... (с датами, путает месяц и день), но синтаксически запись здесь верная.


msguns   (2005-06-06 09:51:00) [3]

>Тучудище   (06.06.05 09:38) [21]
>>QReestr.ParamByName('PD').AsString
>??????

К чему это ?


Тучудище   (2005-06-06 09:38:00) [4]


QReestr.ParamByName('PD').AsString

??????


sniknik   (2005-06-06 00:14:00) [5]

xroot   (05.06.05 22:23) [17]
> Так пост на один ниже этого!
на один ниже это [18]-й, там тоже вопросов не видать... ни второго ни даже первого...

если имеется ввиду > xroot   (05.06.05 17:37) [2] то там тоже вопросов нет, имеется утверждение "Вот так работает, но не верно." весьма спорное кстати, без определения критериев "верности"...

p.s. формулируйте свои мысли яснее, вопросы понятнее. ну... так как будто это вамнадо... а то пока, что такое впечатление что это нужно нам.

p.p.s. впрочем, четкости мыслей видать трудно добиться если мыслить цифрами вместо букв. ;о))


Anatoly Podgoretsky   (2005-06-05 22:32:00) [6]

Zacho ©   (05.06.05 22:31) [18]
Aaaaaa


Zacho   (2005-06-05 22:31:00) [7]

Anatoly Podgoretsky ©   (05.06.05 22:21) [15]
Это не должно вызывать подозрений


У меня вызывает :)
Потому что насмотрелся я похожего кода и задолбался уже объяснять, что параметрам можно (и нужно) присваивать новые значения без перформирования всего запроса.
Вот и ответил "на автомате" :)


xroot   (2005-06-05 22:23:00) [8]

Так пост на один ниже этого!


Anatoly Podgoretsky   (2005-06-05 22:22:00) [9]

xroot   (05.06.05 22:07) [13]
Так второго вопроса здесь не видать.


Anatoly Podgoretsky   (2005-06-05 22:21:00) [10]

Это не должно вызывать подозрений, кроме указаной необходимости для ряда типов, надо учесть еще возможность оптимизации.
Подготовленый запрос с параметрами будет потом выполняться весьма быстро.
Вот что должно вызывать подозрение и возражение, так это запросы типа SELECT *


Zacho   (2005-06-05 22:09:00) [11]

sniknik ©   (05.06.05 21:56) [11]
и что ты делал если строки вбивает юзер(не в DBEdit а в простой контрол)/передаеш из другой таблици (в обшем не знаеш содержание на момент составления запроса)?
парсил на предмет апострофов и вставлял задвоенные? или просто игнорировал их по причине невозможности данных с ними?


AP уже ответил :)

А с юникодом... Действительно, проблемы есть. Просто я на них не наткнулся.

Вообще, написав "Смысла в этом нет никакого." я, конечно, лажанулся. Не подумал. Просто код, в котором формируют строку запроса с параметром, и сразу же присваивают параметрам значение, у меня вызывает подозрения.


xroot   (2005-06-05 22:07:00) [12]

Извините, я реально тупил. Все работало с самого на4ала, я просто не в ту колонку смотрел. Извините еще раз.
Спасибо за столь бурное обсуждение.
PS: Если не тяжело посмотрите мой 2ой вопрос


Anatoly Podgoretsky   (2005-06-05 22:01:00) [13]

С апострофами нет проблем, для этого есть QuotedStr, а вот с Юникод без параметров не обойтись. Имеется ввиду передать данные именно как Юникод в Юникод поле.


sniknik   (2005-06-05 21:56:00) [14]

> Хотя в моей практике были и апострофы, и юникод :)
и что ты делал если строки вбивает юзер(не в DBEdit а в простой контрол)/передаеш из другой таблици (в обшем не знаеш содержание на момент составления запроса)?
парсил на предмет апострофов и вставлял задвоенные? или просто игнорировал их по причине невозможности данных с ними?
если первое то = дополнительные тормоза на передаче между таблицами, если второе = потенциальные глюки (даже если сейчас уверен что апострофы в данном поле невозможны, это всего лиш отложенные на неопределенное время глюки).

и с юникодом сомневаюсь что правильно так работает (вернее всегдаправильно), но врать не буду, никогда юникод в запрос так не вставлял... с параметром да, тестил, но не более (проверял компоненты Tnt).


Anatoly Podgoretsky   (2005-06-05 21:36:00) [15]

SQL.Text := Text + WS_VAR
Решение - :WS_PAR


Zacho   (2005-06-05 21:17:00) [16]

Anatoly Podgoretsky ©   (05.06.05 21:00) [8]

Забавно :) Любопытно, какие ?
Странно, я даже не предпологал, что возможны проблемы со строками. Хотя в моей практике были и апострофы, и юникод :) С юникодом были проблемы, но никак не связанные с параметрами :)


Anatoly Podgoretsky   (2005-06-05 21:00:00) [17]

Zacho ©   (05.06.05 20:47) [7]
Недавно с этим вопросом сталкивался на одном из форумов, какие только невероятные решения не предлагали.


Zacho   (2005-06-05 20:47:00) [18]

Anatoly Podgoretsky ©   (05.06.05 20:38) [6]

Да, возможно


Anatoly Podgoretsky   (2005-06-05 20:38:00) [19]

Zacho ©   (05.06.05 20:31) [5]
Ну например апострофы и юникод


Zacho   (2005-06-05 20:31:00) [20]

sniknik ©   (05.06.05 19:58) [4]
смысл в параметре есть, и если задавать его правильно то ошибок не будет. и вообще чтобы не задумываться и на нарываться на трудноуловимые глюки, даты, числа с плавающими запятыми и строки, всегда лучше задавать параметрами.


Частично согласен :) , но при чём сдесь строки ?


Страницы:   1 2

Наверх

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