ошибка AlmDbWiew

Вопросы, не попадающие в другие разделы.

ошибка AlmDbWiew

Сообщение werg » Сб авг 27, 2011 2:03 am

когда Вьювер открывается - сохраненные сообщения из базы индицируются
но он ругается 2 раза - month, day or year cannot be Nulls
в скрипте окна он шоу следующий код

StartAlarm=StringFromTime(86400 *$DateTime,1) +" "+StringFromIntg( ($Hour - 1),10 ) + ":" + StringFromIntg( $Minute,10 ) ;
EndAlarm=StringFromTime(86400 *$DateTime,1) +" "+StringFromIntg( $Hour,10 ) + ":" + StringFromIntg( $Minute,10 ) ;
#AlmDbViewCtrl3.StartTime=StartAlarm;
#AlmDbViewCtrl3.EndTime=EndAlarm;
#AlmDbViewCtrl3.Refresh()

нажимаю кнопку со скриптом показать за посл 24 часа
StartAlarm=StringFromTime(86400 *($DateTime - 1),1) +" "+StringFromIntg( $Hour,10 ) + ":" + StringFromIntg( $Minute,10 ) ;
EndAlarm=StringFromTime(86400 *$DateTime,1) +" "+StringFromIntg( $Hour,10 ) + ":" + StringFromIntg( $Minute,10 ) ;
#AlmDbViewCtrl3.StartTime=StartAlarm;
#AlmDbViewCtrl3.EndTime=EndAlarm;
#AlmDbViewCtrl3.Refresh();

тоже ругается 2 раза

я понимаю что где то со временем нестыковка
только не могу понять чего может не хватать
подскажите на что обратить внимание
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: ошибка AlmDbWiew

Сообщение Генератор зла » Пн авг 29, 2011 1:30 pm

Выводите значения StartAlarm, EndAlarm на экран и ищите ошибку.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: ошибка AlmDbWiew

Сообщение werg » Пн авг 29, 2011 5:05 pm

start alarm and alarm у меня и так на экран выводятся
у меня 2 кнопки
начало
#AlmDbViewCtrl3.StartTime=StartAlarm;
#AlmDbViewCtrl3.Refresh();

и конец
#AlmDbViewCtrl3.EndTime=EndAlarm;
#AlmDbViewCtrl3.Refresh();

интервала запроса из базы

и 2 text box соответсвенно
с тегом StartAlarm и второй EndAlarm

выводятся все в таком формате 29.08.2011 12:55
что же может быть такое???? :( :( :( :?:
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: ошибка AlmDbWiew

Сообщение Генератор зла » Пн авг 29, 2011 5:57 pm

Попробуйте установить Start... и End... на 11 августа 2011. Если ошибок не будет, то запрос первую цифру воспринимает как месяц
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: ошибка AlmDbWiew

Сообщение werg » Пн авг 29, 2011 6:18 pm

та же проблема...
может это с SQL временем надо поковыряться?
я не до конца понимаю как работает запрос
и на каком этапе возникает ошибка

:idea: а какого типа должны быть теги ??
у меня StartTime - i/o message
StartAlarm - memory message
:!: EndTime - memory discrete
EndAlarm - memory message
:roll:
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: ошибка AlmDbWiew

Сообщение Генератор зла » Пн авг 29, 2011 7:04 pm

StartTime Property
Returns or sets the start time.

Type
Message

Syntax
Object.StartTime [= text]

Value
text

A string expression that evaluates to the Start Time. The string returned is always in the format (MM/DD/YYYY HH:MM:SS). The same format is also required to set the value of the string. This property handles date in any time zone from midnight, January 1, 1970, to January 18, 19:14:07, 2038

Попробуйте использовать StartAlarm=StringFromTime(86400 *$DateTime,3) +...
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: ошибка AlmDbWiew

Сообщение werg » Пн авг 29, 2011 8:34 pm

это меняет лишь формат представления времени и только
проблема не уходит
может кто нибудь пример скрипта с формированием тегов времени скинет
и пример скрипта запроса интервала записи в дб мsSQL
заведомо работающего... :cry:
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: ошибка AlmDbWiew

Сообщение Spaun » Вт авг 30, 2011 6:48 am

Первая цифра - это месяц.
Тип #AlmDbViewCtrl1.StartTime (и EndTime соответственно) - message.
Формат задаётся в вкладке Time/Sort #AlmDbViewCtrl1 :
У меня например такой: 07/30/2011 23:59:59 (в вкладке Time/Sort #AlmDbViewCtrl1: %d.%m.%Y %H:%M:%s %p).

зы: У Вас в формате системы стоит разделитель точка, а для запроса нужен слеш. StringReplace вам поможет=).
Spaun
 
Сообщения: 105
Зарегистрирован: Вс ноя 29, 2009 10:35 am

Re: ошибка AlmDbWiew

Сообщение werg » Пт сен 02, 2011 12:57 pm

Благодарю!
вбиваю в строку запроса не 09.02.2011 00:00 а 09/02/2011 00:00 и нет ошибки
1)Только как StringReplace тут применить чтоб разделители слэши поменялись на точки
непойму

StartAlarm=StringFromTime(86400 *$DateTime,1) +" "+StringFromIntg( ($Hour - 1),10 ) + ":" + StringFromIntg( $Minute,10 ) ;
EndAlarm=StringFromTime(86400 *$DateTime,1) +" "+StringFromIntg( $Hour,10 ) + ":" + StringFromIntg( $Minute,10 ) ;
#AlmDbViewCtrl3.StartTime=StartAlarm;
#AlmDbViewCtrl3.EndTime=EndAlarm;
#AlmDbViewCtrl3.Refresh();

2) Уменя( месяц день год ) надо вбивать А хочется( день месяц год)
я так понимаю это структура тега $DateTime такая со слэшами и с месяцем впереди
в запросе вьювера стоит %d.%m.%Y %H:%M:%s %p
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: ошибка AlmDbWiew

Сообщение Spaun » Пт сен 02, 2011 2:23 pm

Менять нужно точки на слеши, а не наоборот.
StringFromTime(...,1) "выводит дату в формате, заданном в панели управления Windows"(у Вас с точками).
Можно поменять формат в региональных настройках Windows, а можно заменить "." на "/" и поменять местами месяц и день.
Сделайте как Генератор писал:
выведите на экран StringFromTime(86400 *$DateTime,1), StartAlarm, EndAlarm и смотрите что не так.
должно быть: месяц/день/год HH:mm
Spaun
 
Сообщения: 105
Зарегистрирован: Вс ноя 29, 2009 10:35 am


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60