![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с отображением даты [D6, Paradox]
shnurok © (2003-12-17 16:11:00)
Уважаемые мастера, помогите!
Возникла такая проблема - есть таблицы Paradox, а там поле Date.
Даты есть как прошлого века(до 2000) так и этого.
Так вот, в приложении пытаюсь сделать отображение года в четыре цифры(способы использовала : задание для поля DisplayFormat dd.mm.yyyy, меняла региональные настройки на дд.мм.гггг) - тогда даты прошлого века превращаются в "будущие", типа 2098.
Пробовала настроить сам BDE - картина такая: в приложении даты все равно остаются в формате дд.мм.гг - т.е. местные региональные, а если открыть таблицу в database Desktop - там нормально выглядит все, что до 2000г., все что позднее - опять только две цифры в году.
Посоветуте, что тут можно сделать? Или придется насильно переписать все даты в правильном формате?
главное, что из-за этой ерунды, неверно производится сортировка.
Ведь в самой таблице дата хранится верная, например, DataBase WorkShop все показывает правильно.
mfender (2003-12-17 20:24:00) [1]
> Anatoly Podgoretsky © (17.12.03 16:17) [1]
> Переписать, но что то меня смущает, неужели Парадокс может
> хранить даты с двумя цифрами в годе, не верю.
Я видел такие таблицы (а может подобные). Там дата в виде string написана. И ее надо парсить.
Shnurok (2003-12-17 17:01:00) [2]
Ага, и вот у меня эти самые региональные настройки воспринимают год введенный сейчас как 12.12.45 как 2045, хотя границы годов стоят с 1930 по 2029 ????
Придется все-таки переписывать значения в базе.
Hawk2 (2003-12-17 17:00:00) [3]
>Johnmen © (17.12.03 16:55) [15]
Эта опция не активна, а поля пустые!
Да впрочем это как говорится: "На скорость не влияет", у авторки вопроса всеравно ничего не выходит.
Johnmen (2003-12-17 16:55:00) [4]
>Hawk2 © (17.12.03 16:49)
Есть. "При вводе двух цифр года воспринимать их как год между."
Hawk2 (2003-12-17 16:49:00) [5]
>Johnmen © (17.12.03 16:46) [11]
А нет там ничего!
Shnurok (2003-12-17 16:48:00) [6]
Проблема действительно наверное в том, что когда вводили указывали два знака. Но все равно какая-то мистика получается - смотрю таблице в стороннем менеджере баз данных(в том же DataBase WorkShop) ВСЕ даты выглядят нормально.
Hawk2 (2003-12-17 16:46:00) [7]
Малость ошибся после 53 записывается 19, например 15.08.53, то получается 15.08.1953, а до этого 20 - 15.08.2052.
Johnmen (2003-12-17 16:46:00) [8]
>Hawk2 © (17.12.03 16:44)
>При этом что интересно...
Ничего интересного. Идешь в региональные настройки, Даты. Там ответ.
Hawk2 (2003-12-17 16:44:00) [9]
Только что пробовал, таблица Paradox 7.0 правда у меня D5.
Во-первых при заполнении поля типа Date, даже при введении значения типа 10.08.98 после перехода на другую запись (или поле) автоматом дописывается 19, тоесть получается 10.08.1998, а из этого следует что Парадокс хранит дату в формате "dd.mm.yyyy". При этом что интересно, если ввести к примеру 15.08.52, то записывается 15.08.2052, а если 15.08.53, то дописывается 20 - тоесть 15.08.2052.
Во-вторых в Гриде все нормально отображается.
Johnmen (2003-12-17 16:43:00) [10]
Значит в этой записи в этом поле прописана дата 12.12.2098
Видимо, когда заполняли, били 2 знака...
Vint (2003-12-17 16:43:00) [11]
>Shnurok (17.12.03 16:33) [4]
либо 4-ре, но все "старые" даты становятся например 12.12.2098. -(
попробуй
TwoDigitYearCenturyWindow := скажем 90;
Shnurok (2003-12-17 16:39:00) [12]
DisplayFormat dd.mm.yyyy дает дату из 12.12.98 в 12.12.2098 -(
Johnmen (2003-12-17 16:36:00) [13]
DisplayFormat dd.mm.yyyy достаточно, чтобы показывалось нормально.
Shnurok (2003-12-17 16:34:00) [14]
FOURDIGITYEAR уже давно выставлено в true, в самом приложении при этом все равно 2 цифры в году
Shnurok (2003-12-17 16:33:00) [15]
Вот-вот... нутром чую, что хранятся то они в нужном формате, но как мне заставить в DBGride отображать год в 4-ре цифры? Никак не получается. Либо 2(тогда есть такие записи 12.12.98 и 12.12.03), либо 4-ре, но все "старые" даты становятся например 12.12.2098. -(
Vint (2003-12-17 16:32:00) [16]
а не пробовал поменять FOURDIGITYEAR на true?
Johnmen (2003-12-17 16:23:00) [17]
Не могёт такого быть...:)
Как видно, что "превращаются" ?
Anatoly Podgoretsky (2003-12-17 16:17:00) [18]
Переписать, но что то меня смущает, неужели Парадокс может хранить даты с двумя цифрами в годе, не верю.