![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Itnvalid variant type conversion [D5, Paradox]
The X © (2004-01-13 15:52:00)
Проблема вот в чем.
Запускается программа. На форме расположены Edit-ы и DateTimePicker-ы. При запуске эти компоненты обращаются вручную к соответствующим полям в БД, которые имеют соответствующий формат. DateTimePicker установлен в длинный формат отображения даты. Если БД пуста, то при запуске все поля для ввода будут пустыми, а DateTimePicker будет отображать текущую дату. На некоторых компах при запуске вылазит ошибка см. заголовок ветки. Я думаю, что причина - в региональных настройках отображения даты - "дд.мм.гг" "дд.мм.гггг". Поправьте меня, пожалуйста, если я не прав.
СПАСИБО!
The X (2004-01-18 16:31:00) [1]
Извините ошибся веткой :))
The X (2004-01-18 16:30:00) [2]
Итак, я решил остановится на автоматической отсылке с помощью e-mail необходимых данных на удаленный ящик. Будет приходит письмо с определенной темой. Далее необходимо автоматически проверять ящик и при приходе письма автоматически читать его жестко структурированное содержимое с последующим использованием пришедших данных. Что можете посоветовать по поводу оных средств автоматического приема и обработки?
sniknik (2004-01-13 23:46:00) [3]
сколько раз уже говорили о пользе логов? еще раз в 10001, веди лог. все общение с пользователем выльется "была ошибка? высылайте лог". в 98% случаев все по нему решается. а в оставшихся 2% сильно помогает.
Anatoly Podgoretsky (2004-01-13 19:17:00) [4]
The X © (13.01.04 19:09) [40]
Ну насчет ошибок то не врут!
The X (2004-01-13 19:14:00) [5]
Vlad ©
Ладно, наверное до лучших времен...
Хотя сейчас более подробно узнаю. Звонить надо за сотни км...
)))
Спасибо всем!
Vlad (2004-01-13 19:12:00) [6]
> The X © (13.01.04 19:09) [40]
Дружеский совет: никогда не верь пользователю.
Если он говорит - база пустая - это не всегда значит что Table1.IsEmpty = true;
Так что не забивай мозги ни себе ни народу, оттестируй как будет возможность на "глючной" машине или приведи код программы сюда.
The X (2004-01-13 19:09:00) [7]
Vlad ©
Потому что звонят и говорят - такая вот ошибка. Я спрашиваю - база пустая? Да, они говорят, что база путая и ошибка возникает при запуске. А я знаю, что при запуске происходит проверка на пустоту базы. Если пустая - в Пикеры подставляется текущая дата.
Ко всем.
Еще звонили из другого места :)) и говорили, что там запускается нормально, но при сохранении любой записи в базе вылетает тот же EVariant. Поля с датой пишутся в базовые поля типа DATE Paradox. А к третьим сторонам я уже звонил *))) и сам спрашивал - у них все нормально.
8)
Vlad (2004-01-13 18:59:00) [8]
Если у тебя нет возможности отладить проект на "глючных" машинах, то как же ты узнал, что ошибка происходит именно в этом месте, т.е. конкретно в этой строчке:
DateTimePicker1.Date := Date;
P.S. твой 4-й пукт отпадает.
Sandman25 (2004-01-13 18:58:00) [9]
Только что попробовал. И . ставил, и /, и длинный формат, и короткий. Все работает. Win2000, D3.
The X (2004-01-13 18:54:00) [10]
Что я вам всем хочу сказать:
1) Никто так и не выдвинул предположений - почему на некоторых машинах работает, а на некоторых - нет?
2) Там, где не работает, пока нет возможности поиграться регион. настройками - так получилось, пока решаем без этого.
3) Никаких DateTimePicker1.Date := qury1["DATE_1"];
там и близко нет.
4) Есть мысль - а может там на глючной машине стоят в регион. настройках разделитель года - "/" ??????? (!!!!!!!!) (подтверждает мою мысль № 1).
Johnmen (2004-01-13 18:25:00) [11]
>roottim
Это последействие взгюка форума...:)
roottim (2004-01-13 18:21:00) [12]
2Johnmen © (13.01.04 18:02) [33]
ты это к чему... к SysUtils.LongDateFormat ?... ну забыл...
и вообще ошибка явно не здесь...
[32] - совет.. не зависеть на ввод -вывод от рег-х настроек
- что мешает выставить рег-е настройки на той машине где не работает, и посмотреть.. в них-ли глюк или нет... наверно просто лень..
- скорее всего где-то есть строчка такого рода
DateTimePicker1.Date := qury1["DATE_1"];
где идет преобразование variant.. и на значение NULL происходит оный exception
Vlad (2004-01-13 18:08:00) [13]
> Johnmen © (13.01.04 17:57) [31]
> >Vlad © (13.01.04 17:53)
>
> Там есть Format. Он перекрывает DateFormat.
"Там" - это в DateTimePicker ? Я что-то такого не вижу (D5)
Johnmen (2004-01-13 18:02:00) [14]
>roottim
Ты ошибся комнатой :)))
roottim (2004-01-13 18:01:00) [15]
ну вставь в главный модуль этот код и проверь действуют ли рег.настроики или нет... а потом перечитай все сообщения снова.
initialization
SysUtils.DateSeparator := ".";
SysUtils.ShortDateFormat := "dd.MM.yyyy";
end;
Johnmen (2004-01-13 17:57:00) [16]
>Vlad © (13.01.04 17:53)
Там есть Format. Он перекрывает DateFormat.
Vlad (2004-01-13 17:53:00) [17]
> Johnmen © (13.01.04 17:38) [27]
Формат отображения в DateTimePicker у него стоит длинный, т.е. dfLong. Допустим настройки в RegionalSettings стоят следующие:
Long Date Style = d MMMM yyyy "г." с длинным годом.
Как в DateTimePicker сделать тоже самое только с коротким годом при указанных Regional Settings ?
sniknik (2004-01-13 17:48:00) [18]
Ega23 © (13.01.04 17:26) [22]
> что Date - Целое число.
не
TDate = type TDateTime;
sniknik (2004-01-13 17:44:00) [19]
The X © (13.01.04 17:27) [24]
ничем не поможет (если конечно у тебя гдето преобразований нет) в показаном коде точно
посмотри в модуле System - TDateTime = type Double; т.е. одно число присвоилось другому, причем сдесь настройки где месяц при выводе стоит?
Johnmen (2004-01-13 17:38:00) [20]
>Vlad © (13.01.04 17:34)
>Как ?
Странный вопрос... Или я чего не понял ? А понял я так, что он про формат отображения имел в виду...