Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2012, 18:42   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Тип date Delphi+Firebird

У меня БД firebird. В базе есть поле DATA_ZAKUPKI тип DATE
В delphi я пишу код
Код:
with DM.QTable2 do
  begin
    Active:=false;        
    ParamByName('DATA_ZAKUPKI').Asdate:=strtodate('06.07.2012');        
    Active:=true;
  end;
получаю пустой набор.
если пишу так
Код:
with DM.QTable2 do
  begin
    Active:=false;        
    ParamByName('DATA_ZAKUPKI').AsString:='2012-07-06';        
    Active:=true;
  end;
то получаю то что нужно.
Как мне правильно передавать в запрос дату из Datetimepicker?
P.s. Забыл сказать, что использую копонент FibPlus pFIBDataSet1

Последний раз редактировалось tarakan1983; 16.11.2012 в 18:46.
tarakan1983 вне форума Ответить с цитированием
Старый 16.11.2012, 19:07   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

если так:
Код:
ParamByName('DATA_ZAKUPKI').Asdate:=DateTimePicker.Date;
не пустит - нужно играться с форматом даты в самой БД
зы. хотя никогда таких проблем не возникало. все и всегда было норм
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 16.11.2012, 19:30   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
нужно играться с форматом даты в самой БД
Где это делается, я уже google наизнанку вывернул, или я может не так спрашиваю...
tarakan1983 вне форума Ответить с цитированием
Старый 16.11.2012, 19:59   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

1. Так как написал Yurk@ в посте #2 должно работать 100%.
2. Попробуй написать вначале
Код:
ShortDateFormat:='dd.mm.yyyy';
3. Никогда за много лет небыло проблем с датой в Firebird-е и Fib-ами.
_SERGEYX_ вне форума Ответить с цитированием
Старый 16.11.2012, 20:04   #5
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

вроде разобрался
у меня в pFIBDataSet1 запрос
Код:
select 
    *
from table2
where table2.data_zakupki like :data_zakupki
при таком запросе он понимает формат только gggg-mm-dd
если
Код:
select 
    *
from table2
where table2.data_zakupki = :data_zakupki
то все отлично
просто если я хотел увидеть все записи, не фильтруя, я писал так
Код:
with DM.QTable2 do
  begin
    Active:=false;        
    ParamByName('DATA_ZAKUPKI').AsString:='%%';        
    Active:=true;
  end;
Тогда вопрос как мне передать параметр, чтобы убрать фильтрацию по дате, использовать variant?

Решил переписать sql запрос на beetwen, если на показать все, то пишу межу датой 1900 и 2200, если конкретную дату то между 06.07.2012 и 06.07.2012
Всем спасибо за внимание. Надеюсь это правильное решение и косяков не встречу.

Последний раз редактировалось tarakan1983; 16.11.2012 в 20:39.
tarakan1983 вне форума Ответить с цитированием
Старый 16.11.2012, 21:52   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И зачем такие условия, если не нужно по дате выбирать? Чтобы запрос подольше работал? Запрос без WHERE сделать большие трудности создают?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.11.2012, 21:54   #7
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Я просто выдрал кусок из запроса, он очень большой, и еще в добавок там left join, iner join и т.п.
Просто, в этом запросе одно из условий, если забито поле "сортировать по дате", то оно тоже участвует в сортировке.
tarakan1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7+FoxPro 6 проблема с типом данных date Ditrovich БД в Delphi 10 06.09.2012 12:15
FireBird. Как конвертировать Integer в Date и обратно? BeJIuKuu_Hexo4yxa SQL, базы данных 5 25.10.2010 10:10
Ошибка SQL запроса по полю тип Date Evgen1503 БД в Delphi 20 02.07.2010 10:21
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13