Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.12.2011, 20:59
Evita Evita вне форума
Прохожий
 
Регистрация: 05.11.2011
Сообщения: 8
Репутация: 10
По умолчанию Напоминание о дне рождения

у меня в БД (Access, ADOConnection,ADOTable) есть поле дня рождения типа дата\время. В программе я предусматриваю функцию напоминания о дне рождения за три дня.
Использовала я вот такой код:
Код:
n:=Form1.DBGrid1.DataSource.DataSet.RecordCount;
for i:=1 to n do
begin
Vday:=DayOf(DBGrid1.Columns[13].Field.AsDateTime);
Vmonth:=MonthOf(DBGrid1.Columns[13].Field.AsDateTime);
if(Vmonth=MonthOf(Date))and((Vday-DayOf(Date)<3)and(Vday-DayOf(Date)>=0)) then
        begin
            case Vday-DayOf(Date) of
                0: Day:='сегодня';
                1: Day:='завтра';
                2: Day:='послезавтра';
            end;
            ShowMessage('У ФИО День рождения '+Day);
        end;
        DBGrid1.DataSource.DataSet.Next;

или вот такой:

Код:
1
2

	

if (DayOfTheYear(DataModule2.ADOTable1.Fields[13].AsDatetime)-DayOfTheYear(Now)=3) and (MonthOfTheYear(DataModule2.ADOTable1.Fields[13].AsDatetime)=MonthOfTheYear(Now)) then
ShowMessage(IntToStr('Happy Birthday!'));

Но возникает ошибка типа EAccessViolation на первых строчках выше приведенных кодов. В чем может быть проблема ? Заранее спасибо
Ответить с цитированием
  #2  
Старый 02.12.2011, 01:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, судя по ошибке, скорее всего какой-то из объектов, к которому идет обращение, просто не создан (или уже уничтожен).
Ответить с цитированием
  #3  
Старый 02.12.2011, 06:21
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Поставь курсор на строчку
Код:
n:=Form1.DBGrid1.DataSource.DataSet.RecordCount;
и нажми F5. Потом запусти программу и на этой строчке процесс остановиться. Нажимай F8 пока не появиться ошибка, и напиши сюда на какой строчке появилась ошибка.
P.S. Если непонятно описал, обращайся в личные сообщения.
__________________
Google в помощь
Ответить с цитированием
  #4  
Старый 02.12.2011, 11:38
Evita Evita вне форума
Прохожий
 
Регистрация: 05.11.2011
Сообщения: 8
Репутация: 10
По умолчанию

Первая ошибка выдается именно на этой строке, затем нажимаю F8, идет спуск на цикл for и снова выдается ошибка. Дальше при нажатии на F8 ничего не происходит
Ответить с цитированием
  #5  
Старый 02.12.2011, 12:01
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Evita
Первая ошибка выдается именно на этой строке, затем нажимаю F8, идет спуск на цикл for и снова выдается ошибка. Дальше при нажатии на F8 ничего не происходит

Ну значит либо From1, либо DBGrid1 расположенный на Form1, либо его датасет, на момент выполнения не созданы или уничтожены.
__________________
Google в помощь
Ответить с цитированием
  #6  
Старый 02.12.2011, 19:17
Evita Evita вне форума
Прохожий
 
Регистрация: 05.11.2011
Сообщения: 8
Репутация: 10
По умолчанию

ну вот этот код у меня в процедуре FormCreate. Это может влиять на ошибку ? И если да, то в какой процедуре можно прописать код, так чтобы напоминание возникало после запуска программы ?
Ответить с цитированием
  #7  
Старый 02.12.2011, 20:54
Аватар для Belanserg
Belanserg Belanserg вне форума
Прохожий
 
Регистрация: 18.11.2009
Сообщения: 29
Версия Delphi: 7
Репутация: 12
По умолчанию

Может, вставте свой код в событие FormShow
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter