Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Забавный формат даты в базе Access   Найти похожие ветки 

 
Pipl   (2004-07-02 12:50) [0]

Добрый день, всем!
Данные храню в Accesse, использую ADOQuery. формат ячейки в табле Access: краткий формат даты. При сохранении в базу данных беру дату из DateTimePicker.Date, а когда выбираю данные по дате запросом, дату в запросе привожу к виду: #02/07/2004#. Данные не выбираются из базы, при запросе данных в Пикере поставил на первое место месяц, получил в запросе: #07/02/2004# данные отображаются. А когда дата больше 13: #13/07/2004#, то выбираются данные нормально. Как исправить данную проблемму?
Спасибо!

N.B. В самой таблице Access вид даты 02.07.2004


 
Курдль ©   (2004-07-02 12:54) [1]

Использовать параметрические запросы, а не вставлять дату, как текст с запрос. Иначе есть опасность нарываться на чужие оригинальные настройки формата даты.


 
Pipl   (2004-07-02 12:58) [2]

>Курдль ©
я не программист по натуре, начитан не много, можно по подробнее про параметрические запросы, или где почитать?
Спасибо!


 
Anatoly Podgoretsky ©   (2004-07-02 12:59) [3]

Это значит лишь одно, у тебя нет данных на 7.02.2004


 
Pipl   (2004-07-02 13:02) [4]

>Anatoly Podgoretsky ©
согласен данных нет, база свежая, но высвечиваются данные при запросе на 07.02.2004  за 02.07.2004 я проверял.


 
Курдль ©   (2004-07-02 13:07) [5]


> Pipl   (02.07.04 12:58) [2]
> >Курдль ©
> я не программист по натуре, начитан не много, можно по подробнее
> про параметрические запросы, или где почитать?
> Спасибо!

Почитать в любой книжке по БД + Делфи (динамические запросы).

Query1.SQL.Text := "select * from TABLE_1 where FLD_DATE = :PAR_DATE";
Query1.ParamByName("PAR_DATE").AsDateTime := Date;


 
Anatoly Podgoretsky ©   (2004-07-02 13:09) [6]

Pipl   (02.07.04 13:02) [4]
Потому что ты использовал американский формат даты MM/DD/YYYY


 
Pipl   (2004-07-02 13:12) [7]

> Anatoly Podgoretsky ©
первым делом я проверил региональные настройки в Винде(XP), нормальные русские деревянные рубли :) и краткий формат даты.


 
Anatoly Podgoretsky ©   (2004-07-02 13:17) [8]

Pipl   (02.07.04 13:12) [7]
А спрашиваешь про Акцесс, а не про Виндоус. Его настройки и справку по нему смотри.


 
sniknik ©   (2004-07-02 13:27) [9]

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

чтобы избежать неоднозначности используй параметры.


 
Pipl   (2004-07-02 13:27) [10]

> Anatoly Podgoretsky ©

спрашиваю про варианты решения проблеммы а не про Access или Windows, в самой базе Access"а сделал запрос по дате, отображает данные все правильно, за 02.07.2004.


 
Pipl   (2004-07-02 13:29) [11]

>sniknik ©
>чтобы избежать неоднозначности используй параметры.

можно тут плз по подробнее, какие параметры?
СПАСИБО


 
Anatoly Podgoretsky ©   (2004-07-02 13:33) [12]

Pipl   (02.07.04 13:27) [10]
Так "Данные храню в Accesse"


 
sniknik ©   (2004-07-02 13:37) [13]

> самой базе Access"а сделал запрос по дате, отображает данные все правильно, за 02.07.2004.
дата это число, а как это число интерпретировать/конвертировать из/в текст(а) зависит от программы/программиста

> можно тут плз по подробнее, какие параметры?
обычные ADODataSet.Parameters + F1


 
Pipl   (2004-07-02 13:44) [14]

>sniknik ©
спасибо за помошь, хоть и такую (F1),
у меня запрос выглядит так:
...CommandText:="Select * from TblNomera where DataPrihod =" + data_prihod +" And Sklad ="+Label15.Caption +"";
ежели кому интересно


 
Anatoly Podgoretsky ©   (2004-07-02 13:46) [15]

data_prihod соответствует текущему формату твой базы данных?


 
Pipl   (2004-07-02 13:54) [16]

>Anatoly Podgoretsky ©
data_prihod из DateTimePicker.Date привожу к виду: #02/07/2004#

ответ: да, согласно описаниям формата данных даты Access"a


 
sniknik ©   (2004-07-02 14:03) [17]

> у меня запрос выглядит так:
> ...CommandText:="Select * from TblNomera where DataPrihod =" + data_prihod +" And Sklad ="+Label15.Caption +"";
> ежели кому интересно
тебе, должно быть
меняеш на параметры
...CommandText:="Select * from TblNomera where DataPrihod=:DataPrihod And Sklad=:Sklad";
их значения присваиваеш перед выполнением запроса.


 
Anatoly Podgoretsky ©   (2004-07-02 14:05) [18]

Pipl   (02.07.04 13:54) [16]
Тогда все должно работать, но у меня большое сомнение, что твое преобразование соответствует формату, особенно это видно из более ранних твоих сообщений.


 
Anatoly Podgoretsky ©   (2004-07-02 14:06) [19]

По внешнему виду это американский формат.


 
sniknik ©   (2004-07-02 14:15) [20]

Anatoly Podgoretsky
да не важно сдесь какой это формат, во к примеру такой запрос
SELECT #13/07/2004#, #07/13/2004#
выдаст два значения с одной(!!!) датой. одна (неважно какая) будет в правильном формате, а вторая скорректируется (месяц поменяется с днем).
(и это еще цветочки по сравнению с тем что функция CDate делает ;о))
во так вот оно работает... ;о) (меня это всегда раздражало, лутше бы ошибку преобразования выдавал)


 
Pipl   (2004-07-02 14:17) [21]

>sniknik ©

смышлёный ты парень!!! чуток поковыряв эти грёбаные параметры с твоим запросом, всё получилось, правда я ещё не понял почему и как, но еще не полночь.
СПАСИБО.
N.B. но если придумаешь как упростить - без параметров(или всё таки в чём была пробля) то буду еще более признателен.


 
Anatoly Podgoretsky ©   (2004-07-02 14:21) [22]

sniknik ©   (02.07.04 14:15) [20]
Он ничего не пишет про движок, подозреваю, что это JET, так он достаточно интеллектуальный, что бы исправить неверно поданые ему форматы, когда это одназначно, а это одназначно для #13/07/2004#



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.032 c
14-1088593848
Piter
2004-06-30 15:10
2004.07.25
Дремучие тормозят


14-1088926731
Dan
2004-07-04 11:38
2004.07.25
Как заставить Delphi инсталлиться только для одного юзера


1-1089695732
ПсихЪ_просто
2004-07-13 09:15
2004.07.25
Win2000 vs Win98


11-1077751353
nester
2004-02-26 02:22
2004.07.25
Как обрабатывать сообщения в КОЛ проге, если она без формы.


3-1088744616
NAlexey
2004-07-02 09:03
2004.07.25
Прерывание выполнения запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский