Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
1 из модулей аппликации работает с DAO 3.6. Он открывает mdb-file содержащий link-и на таблицы MySQL. Проблема возникает при таком SELECT-е:
Select ID from messages where 1=1 and msg_date>=#11/01/2004 12:00:01 AM# and msg_date<=#11/01/2004 11:59:59 PM#
Несмотря на то что данные в таблице существуют, у одного из клиентов данный SELECT ничего не приносит, в то время как у нас всё работает нормально.
Может кто-то уже встречался с такой проблемой?
30 май 06, 23:21    [2722939]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
bubucha
Member

Откуда:
Сообщений: 5641
автор

Несмотря на то что данные в таблице существуют, у одного из клиентов данный SELECT ничего не приносит, в то время как у нас всё работает нормально

Наводит на мысль о сравнеии региональных установках у него и у вас.
30 май 06, 23:54    [2723008]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
bubucha
Наводит на мысль о сравнеии региональных установках у него и у вас.

Нетушки. В селекте дата всегда воспринимается по американскому формату.
30 май 06, 23:56    [2723012]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
Владимир Саныч
bubucha
Наводит на мысль о сравнеии региональных установках у него и у вас.

Нетушки. В селекте дата всегда воспринимается по американскому формату.

Эта проблема возникает когда я работаю с DAO. С ADО такой проблемы не существует. Такой же SELECT работает без проблем.
31 май 06, 00:08    [2723040]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
bubucha
Member

Откуда:
Сообщений: 5641
автор

Эта проблема возникает когда я работаю с DAO. С ADО такой проблемы не существует. Такой же SELECT работает без проблем.

Т.е. вы хотите сказать, что переносите sql строчку (один в один ) в адо и все работает?
31 май 06, 00:26    [2723075]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
Да
31 май 06, 00:49    [2723139]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
bubucha
Member

Откуда:
Сообщений: 5641
автор
Да

А можно глянуть на это? Я имею ввиду маленький кусочек базы с запросом.
31 май 06, 00:54    [2723154]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
А что это тебе даст? Данная база данных на Access-е содержит только линки на другую базу данных. Кроме того, когда я беру их базу данных и переношу к себе - всё работает. У других клиентов тоже работает. Так что и у тебя скорее всего будет работать. Я думаю что есть какие-то проблемы или несоответствия в драйверах, но не уверен.

P.S. Кстати, и у них тоже работало до какого-то времени, потом перестало.
31 май 06, 01:10    [2723204]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
Вот что я обнаружил пока занимался этой проблемой. Поля даты приходят ко мне в таком виде "yyyy-mm-dd hh:mm:ss", в то время как у меня на компютере - "mm/dd/yyyy hh:mm:ss AMPM". SELECT мне приходится делать в таком виде:
SELECT * from messages where msg_date >= '20004-11-01 00:00:01' and msg_date <= '20004-11-01 23:59:59'
и когда я пытаюсь использовать '#' ошибка не выдаётся, но и ничего и не выполняется. Кроме того, эта компания работает с Linux-сервером, на котором находится база данных-источник. Так что проблему то я нашёл и решение тоже знаю, на которое не будет влиять дата-формат. Но, может кто-то знает почему вообще такая проблема с '#' возникла.
1 июн 06, 00:39    [2727797]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
GoldDragon
SELECT мне приходится делать в таком виде:
SELECT * from messages where msg_date >= '20004-11-01 00:00:01' and msg_date <= '20004-11-01 23:59:59'

Во-первых, непонятно, что значит приходится. Что мешает переформатировать дату в правильный формат.

Во-вторых, в таком виде оно работать и не будет. Это подробно разжевано в факах при форуме.

В-третьих, получается, что в исходном вопросе все отвечающие получили неверное описание проблемы. Там был приведен правильный селект.
1 июн 06, 00:42    [2727807]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
Владимир Саныч

Во-первых, непонятно, что значит приходится. Что мешает переформатировать дату в правильный формат.

То и означает - иначе данные не приходят, когда я использую SELECT, который находится вначале. Ничего не мешает. Именно такое решение я использовал, чтобы решить эту проблему.
Владимир Саныч

Во-вторых, в таком виде оно работать и не будет. Это подробно разжевано в факах при форуме.

Я и сам знаю, что не должно работать, но, к сожалению, работает. Вот именно это я хочу знать. Почему?
Владимир Саныч

В-третьих, получается, что в исходном вопросе все отвечающие получили неверное описание проблемы. Там был приведен правильный селект.

Всё было верно в описании. Где по твоему несоответствие?
1 июн 06, 00:55    [2727833]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
GoldDragon
Где по твоему несоответствие?

Вот оно:

GoldDragon
Проблема возникает при таком SELECT-е:
Select ID from messages where 1=1 and msg_date>=#11/01/2004 12:00:01 AM# and msg_date<=#11/01/2004 11:59:59 PM#
GoldDragon
SELECT мне приходится делать в таком виде:
SELECT * from messages where msg_date >= '20004-11-01 00:00:01' and msg_date <= '20004-11-01 23:59:59'

Эти две цитаты противоречат друг другу. Первый селект правильный, второй нет. Было сказано, что селект имеет вид как в первом случае, а на самом деле он как во втором.
1 июн 06, 00:58    [2727836]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
бабай
Guest
Эти две цитаты
автор
НЕ
противоречат друг другу.
Первый селект правильный для DAO. Будет правильным второй селект или нет - определяется поставщиком данных (типа - "драйвером") конкретного источника.
Вероятно, MySQL-ный одбц/адо драйвер поддерживает именно такой синтаксис. Надо смотреть его мануалы. Вот и все.

Лучшего сказать не могу, поскольку c MySQL никогда не работал. И, даст Бог, никогда не придется.
1 июн 06, 01:45    [2727866]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
бабай
Вероятно, MySQL-ный одбц/адо драйвер поддерживает именно такой синтаксис. Надо смотреть его мануалы. Вот и все.

В первом посте было сказано, что это mdb.
1 июн 06, 16:34    [2731053]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
бабай
Эти две цитаты
автор
НЕ
противоречат друг другу.
Первый селект правильный для DAO. Будет правильным второй селект или нет - определяется поставщиком данных (типа - "драйвером") конкретного источника.
Вероятно, MySQL-ный одбц/адо драйвер поддерживает именно такой синтаксис. Надо смотреть его мануалы. Вот и все.

Лучшего сказать не могу, поскольку c MySQL никогда не работал. И, даст Бог, никогда не придется.

В том то и дело, что драивер используется один и тот же. Просто первый SELECT работает, когда линки соединяют базу данных в среде Microsoft, а во 2-м случае - в среде Linux. Но в обоих случаях сама ACCESS база данных с линками находится в среде Microsoft. По логики driver должен использовать одинаковую логику в обоих случаях, т.к. сам driver находится в среде Microsoft.
1 июн 06, 16:38    [2731088]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
бабай
Guest
2 Саныч
то, что это mdb я вполне осознал.
mdb допускает кроме запросов родных (далее "гетерогенных"),
еще запрсы к серверу бывают или использование адо-рекордсетов.
я читал ситуацию как один запрос и другой запрос (который может быть и "запросом к серверу").
Моя ошибка была в том, что я не понял, что речь идет об одном и том же запросе.

2 GoldDragon
В любом случае это проблема либо настройки клиентского драйвера (возможно в стыковке с локальными настройками компьютера), если она вообще возможна (как правило возможна хотя бы в части определения языковых параметров).
либо настройки параметров клиентского сеанса на стороне сервера (определяет правила или часть правил форматирования выходного потока).
1 июн 06, 17:43    [2731514]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
GoldDragon
Member

Откуда: Canada
Сообщений: 317
В принципе, как я уже писал, проблема решена с помощью Format. Но для меня просто решить проблему недостаточно. Хотелось бы знать, почему. А то опять наступлю на теже грабли в будущем ;). Короче, если кто-то знает точно что происходит, буду рад услышать, а то никак не могу найти ответ в инете. Может не там ищу не знаю.
1 июн 06, 17:50    [2731566]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с датами  [new]
бабай
Guest
В вашем случае запрос в разных условиях скорее всего будет возвращать разные типы данных.
Там где "работает" вы будете получать дату, а где "не работает" - текст. Посмотрите в рекордсете типы возвращаемых полей.
(рядом форум по MySQl - спросите там про настройки.)
1 июн 06, 17:59    [2731623]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить