Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2010, 18:29   #1
Студло
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 32
По умолчанию Ошибка при Сравнении времени

Здравствуйте. Прошу помочь с вылезающей ошибкой

Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004AED12 in module 'Project1.exe'. Read of address 00000000'. Process stop[ed. Use Step or Run to continue.

Вылезает через секунду после запуска проги. Код виновной процедурки такой:

Код:
procedure TMainfrm.Timer1Timer(Sender: TObject);
var
k,d:Tdatetime;
s:string;
i:integer;
sec,msec,a,b,c,h,e:word;
begin
k:=Date;
d:=Time;
s:=timetostr(d);
label1.caption:=s;
decodedate(k{date},a{год},b{месяц},c{день});
decodetime(d{взял время},h{часы},e{минуты},sec,msec);
for i:=1 to vrs.DBGrid1.DataSource.DataSet.RecordCount do
begin
vrs.Table1.RecNo:=i;
if (vrs.Table1.DataSetField[3].AsInteger=a) and (vrs.Table1.DataSetField[2].AsInteger=b) and (vrs.Table1.DataSetField[1].AsInteger=c) and
 (vrs.Table1.DataSetField[4].AsInteger=h) and (vrs.Table1.DataSetField[5].AsInteger=e) then
begin
MessageDlg(vrs.Table1.DataSetField[7].AsString,mtCustom,[mbOk],0);
end;
end;
end;
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Последний раз редактировалось mihali4; 06.02.2010 в 19:17.
Студло вне форума Ответить с цитированием
Старый 06.02.2010, 19:19   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Время тут ни при чем.
Идет обращение к несуществующему полю.
Проверяйте тщательно, лучше по шагам и смотрите содержимое полей.
mihali4 вне форума Ответить с цитированием
Старый 06.02.2010, 19:29   #3
Студло
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 32
По умолчанию

Угу спасибо. Буду разбираться в полях.

20:16

Debuger выдает ошибку vrs.table1.datasetfield[1].asInteger: expression illegal in evaluator. Что ето может значить?

21:43

Пробовал через Dbgrid достать и через table и value дебагер выдает сообщение Innaccessible value. Как тогда достать данные из таблицы?

Последний раз редактировалось mihali4; 06.02.2010 в 22:57.
Студло вне форума Ответить с цитированием
Старый 06.02.2010, 22:56   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Что за БД ?
Штатным Database Desktop не открыть ?
Возможно, нарушена структура таблицы...

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Пока прощается, после 10 постов - кара...

Цитата:
Debuger выдает ошибку vrs.table1.datasetfield[1].asInteger: expression illegal in evaluator. Что ето может значить?
Только то, что там находится нечто, что не может быть отображено как Integer.
И еще. Почему не написать просто vrs.table1.Fields[1].asInteger ?

Последний раз редактировалось mihali4; 06.02.2010 в 23:03.
mihali4 вне форума Ответить с цитированием
Старый 06.02.2010, 23:39   #5
Студло
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 32
По умолчанию

Извиняюсь за нарушение правил постараюсь не нарушать впредь.Собсно у меня там не база,а всего лишь одна табличка которую я создал через Database Desktop. В этой табличке находятся названия сообщений, текст и время когда это сообщение должно появится. Время записано не очень рационально День, месяц, год,ну и далее, находятся в отдельных полях типа Numeric.
Цитата:
Почему не написать просто vrs.table1.Fields[1].asInteger ?
Кажется пробовал однако может с синтаксисом что не так...сейчас опять попробую.

Воо
Все дебагер все видит что находится внутри и правильные числа выдает...однако ошибка все равно вылезает. Где же может быть обращение к несуществующему нечто, если он все видит?

23:49

Цитата:
vrs.table1.Fields[1].asInteger
Все дебагер все видит что находится внутри и правильные числа выдает...однако ошибка все равно вылезает. Где же может быть обращение к несуществующему нечто, если он все видит

Цитата:
Сообщение от Студло Посмотреть сообщение
Извиняюсь за нарушение правил постараюсь не нарушать впредь.
Не наблюдаю...
У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Читаем правила. Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор


Да, и еще.
Код:
for i:=0 to vrs.table1.RecordCount-1 do

Последний раз редактировалось mihali4; 07.02.2010 в 00:06.
Студло вне форума Ответить с цитированием
Старый 07.02.2010, 00:08   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Вылезает через секунду после запуска проги.
Смотрите, на каком показании счетчика у вас сбой - ставьте бряку с условием на цикл, и - по шажочкам...
И не забудьте проверять
Код:
MessageDlg(vrs.Table1.Fields[7].AsString,mtCustom,[mbOk],0);

Последний раз редактировалось mihali4; 07.02.2010 в 00:28.
mihali4 вне форума Ответить с цитированием
Старый 07.02.2010, 00:12   #7
Студло
Пользователь
 
Регистрация: 06.02.2010
Сообщений: 32
По умолчанию

Цитата:
Да, и еще.
Код:
for i:=0 to vrs.table1.RecordCount-1 do
Ахах вот в чем ошибка. Простите за весь этот флуд.
Цитата:
Не наблюдаю...
Я искренне пытался найти кнопку "удалить сообщение" однако не нашел.

Нет такой кнопки. Есть "Правка". Выбираем сообщение и жмем там "Правка"...
Если нужно удалить ошибочный пост, пишем "Прошу удалить".
Мы удалим.

Последний раз редактировалось mihali4; 07.02.2010 в 01:33.
Студло вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула для подсчета рабочего времени при ночной смены. sakramann Microsoft Office Excel 20 16.10.2013 15:50
Расчет диапазона времени при переходе через сутки Givasi Microsoft Office Excel 4 28.08.2009 15:24
Не работает макрос при обновлении ячеек в реальном времени из другой книги Maxx Microsoft Office Excel 3 12.01.2009 11:42
Поиск лишнего/иного символа при сравнении двух строк Bezdar Microsoft Office Excel 5 13.11.2008 13:07
Выбор Даты/Времени из БД при помощи DateTimePicker rainbow Общие вопросы Delphi 3 08.10.2008 12:42