Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос не находит записи по дате 
:(
    Опции темы
begin
Дата 14.3.2009, 22:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Работаю с MySql через BDE.
Есть вот такой запрос:

Код

query1.SQL.Add('select code from t_tovar where data_1=:txt');
query1.ParamByName('txt').AsDate:=DateTimePicker4.Date;


Но, почему то, он не находит записи, которые явно должны быть найдены. Например, в таблице есть запись с датой 15.03.2009, в пикере выбираю именно эту дату (причем ни в базе ни в пикере время не использую - заношу только дату) - и запрос не находит эту запись  smile 
PM MAIL   Вверх
X-Vlad
Дата 15.3.2009, 14:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 3
Всего: 5



поставь брекпоинт и посмотри что у тебя в 
Код

DateTimePicker4.Date

проверь та ли дата которую ты указал на контроле


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Kbl4AH
Дата 15.3.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(begin @  14.3.2009,  22:18 Найти цитируемый пост)
Но, почему то, он не находит записи, которые явно должны быть найдены.

так не бывает smile 
PM MAIL ICQ   Вверх
begin
Дата 15.3.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(X-Vlad @ 15.3.2009,  14:22)
поставь брекпоинт и посмотри что у тебя в 
Код

DateTimePicker4.Date

проверь та ли дата которую ты указал на контроле

поставил брекпоинт, запускаю программу, выбираю дату 15.03.2009, навожу курсор на DateTimePicker4.Date и всплывает надпись:
Код

DateTimePicker4.Date=39887,854996

почему??  smile 
подскажите, где я мог ошибиться с настройкой формата даты? в DateTimePicker4 сейчас всё по умолчанию.

PM MAIL   Вверх
former
Дата 15.3.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



begin, посмотри, что выдает этот код:
Код

ShowMessage(DateToStr(DateTimePicker4.Date));



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
begin
Дата 15.3.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(former @ 15.3.2009,  17:52)
begin, посмотри, что выдает этот код:
Код

ShowMessage(DateToStr(DateTimePicker4.Date));

При выбранной дате 15.03.2009 выдает:
15.03.2009
PM MAIL   Вверх
Kbl4AH
Дата 15.3.2009, 18:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



begin, а у поля data_1 в таблице какой тип?
PM MAIL ICQ   Вверх
begin
Дата 15.3.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(Kbl4AH @ 15.3.2009,  18:05)
begin, а у поля data_1 в таблице какой тип?

TimeStamp

Выбрал именно его, чтобы можно было вот так сравнивать в запросах. Даты заношу без времени: проверил SQL-менеджером - заносятся значения вида 12.03.2009, 15.03.2009 и т.п. Т.е. с хранением даты в базе вроде проблем нет. Но почему пикер выдает дату в таком формате?  smile Чем то похоже на метку времени Unix, но с запятой  smile 
PM MAIL   Вверх
Данкинг
Дата 15.3.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(begin @  15.3.2009,  18:18 Найти цитируемый пост)
TimeStamp

Храни как текст  и преобразовывай для запроса. Я чаще всего именно так поступаю.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
begin
Дата 15.3.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(Данкинг @ 15.3.2009,  18:40)
Цитата(begin @  15.3.2009,  18:18 Найти цитируемый пост)
TimeStamp

Храни как текст  и преобразовывай для запроса. Я чаще всего именно так поступаю.

не получится - ведь у меня будут и такие запросы:
Код

select code from t_tovar where data_1>:txt

PM MAIL   Вверх
former
Дата 15.3.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Делаешь вот так:
Код

ADOQuery1.Active:=false;
  ADOQuery1.SQL.Text:='Select * from Dates where ModDate = :mdts';
  ADOQuery1.Parameters.ParamByName('mdts').Value:=DateToStr(DateTimePicker1.Date);
  ADOQuery1.Active:=true;


Проверено.
В твоем случае:
Код

query1.SQL.Add('select code from t_tovar where data_1=:txt');
query1.ParamByName('txt').Value:=DateToStr(DateTimePicker4.Date);


Это сообщение отредактировал(а) former - 15.3.2009, 19:00


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 15.3.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Вот так всегда. даже спасибо никто не скажет. smile 


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Kbl4AH
Дата 15.3.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(begin @  15.3.2009,  18:18 Найти цитируемый пост)
TimeStamp

имхо юзай Date и проблем с пикерами не будет smile 
Цитата(begin @  15.3.2009,  18:18 Найти цитируемый пост)
Но почему пикер выдает дату в таком формате?

правильно выдает
PM MAIL ICQ   Вверх
begin
Дата 15.3.2009, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(former @ 15.3.2009,  18:52)
Делаешь вот так:
Код

query1.SQL.Add('select code from t_tovar where data_1=:txt');
query1.ParamByName('txt').Value:=DateToStr(DateTimePicker4.Date);

Работает! Огромное спасибо
PM MAIL   Вверх
X-Vlad
Дата 16.3.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

Репутация: 3
Всего: 5



если ты юзаешь TimeStamp то у тебя записывается в поле дата и время (20,02,1980 00:45:20)
и когда ты пытаешся фильровать соответственно ничего ненайдет. 
Юзай 
Код

query1.SQL.Add('select code from t_tovar where data_1=:txt');
query1.ParamByName('txt').DateTime := DateTimePicker4.DateTime;


Вообще то поле типа TimeStamp юзают для полей CREATE_DATE, MOD_DATE и заполняют автоматически при создании рекорда и при апдейте, а в других случаях используют тип DATETIME

Это сообщение отредактировал(а) X-Vlad - 16.3.2009, 13:18


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.