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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2015, 18:47   #1
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию ошибка access violation at 0x006202df: read of address 0x00000000'

Всем, добрый день, выручайте , 2ой вечер бьюс с проблемой, можете кто нибудь прогнать в дебагере у себя программу. Все нормально было, без ошибок отрабатывал код, а тут бац и ошибка при нажатии на кнопку "пиво".
Вложения
Тип файла: rar Projects.rar (138.1 Кб, 8 просмотров)
Тип файла: rar test.accdb.rar (60.8 Кб, 7 просмотров)
MixanMM вне форума Ответить с цитированием
Старый 21.06.2015, 09:53   #2
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

поменял вот это:
Код:
procedure zapr (n1:string; Button:TButton; data:Tlabel; ost:Tlabel); //процедура обновления кнопок
begin
  Form1.ADOQuery4.Active :=False;
  Form1.ADOQuery4.SQL.Clear;
  Form1.ADOQuery4.SQL.Add('SELECT ostatki.[imya] FROM ostatki WHERE kran='+n1);
  Form1.ADOQuery4.Active:=True;
  if Form1.ADOQuery4.RecordCount > 0 then
    begin
     Button.Enabled :=true;
     Button.Caption:= Form1.ADOQuery1.Fields[0].AsString;
     Form1.ADOQuery4.Active :=False;
     Form1.ADOQuery4.SQL.Clear;
     Form1.ADOQuery4.SQL.Add('SELECT ostatki.[otkr] FROM ostatki WHERE kran='+n1);
     Form1.ADOQuery4.Active:=True;
     data.Caption:= Form1.ADOQuery1.Fields[0].AsString;
     Form1.ADOQuery4.Active :=False;
     Form1.ADOQuery4.SQL.Clear;
     Form1.ADOQuery4.SQL.Add('SELECT ostatki.[v_tare] FROM ostatki WHERE kran='+n1);
     Form1.ADOQuery4.Active:=True;
     ost.Caption:= Form1.ADOQuery1.Fields[0].AsString;
    end
 else
  begin
  Button.Enabled:=false;
  end;
end;
на вот это :
Код:
procedure zapr (n1:string; Button:TButton; data:Tlabel; ost:Tlabel); //процедура обновления кнопок
begin
  Form1.ADOQuery4.SQL.Clear;
  Form1.ADOQuery4.SQL.Add('SELECT ostatki.[imya] FROM ostatki WHERE kran='+n1);
  Form1.ADOQuery4.ExecSQL;
  if Form1.ADOQuery4.RecordCount > 0 then
    begin
     Button.Enabled :=true;
     Button.Caption:= Form1.ADOQuery1.Fields[0].AsString;
     Form1.ADOQuery4.SQL.Clear;
     Form1.ADOQuery4.SQL.Add('SELECT ostatki.[otkr] FROM ostatki WHERE kran='+n1);
     Form1.ADOQuery4.ExecSQL;
     data.Caption:= Form1.ADOQuery1.Fields[0].AsString;
     Form1.ADOQuery4.SQL.Clear;
     Form1.ADOQuery4.SQL.Add('SELECT ostatki.[v_tare] FROM ostatki WHERE kran='+n1);
     Form1.ADOQuery4.ExecSQL;
     ost.Caption:= Form1.ADOQuery1.Fields[0].AsString;
    end
 else
  begin
  Button.Enabled:=false;
  end;
end;
ругается на закрытый DataSetFirst : "chance exception at $756F812F. Exception class EDatabaseError with message 'ADOQuery4: Cannot perform this operation on a closed dataset'. Process Project1.exe (4184)"
MixanMM вне форума Ответить с цитированием
Старый 21.06.2015, 11:33   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А чего ему быть открытому если он ни раз не открыт? В сообщении об ошибке ровно об этом и сказано
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2015, 21:39   #4
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А чего ему быть открытому если он ни раз не открыт? В сообщении об ошибке ровно об этом и сказано
да он отрабатывался, пока я события для 10ти кнопок не описал, но откатился назад и все заработало, но бага странная из неоткуда - прям как фантомас
MixanMM вне форума Ответить с цитированием
Старый 21.06.2015, 21:52   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
да он отрабатывался
Показанный код не мог выполниться. ExecSQL не делает активным ADOQuery, что означает любая попытка выполнить метод или обратиться к свойству предполагающему, что он открыт подымет исключение. Например обращение к RecordCount. Активным делает удачное выполнение метода Open или присвоение True свойству Active
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Access Violation Read of address 00000001 Baburek C++ Builder 2 14.06.2013 12:32
Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000. Arktos1995 Общие вопросы Delphi 5 12.12.2012 22:33
Ошибка: "Access violation at address 0045E503 in module 'Project1.exe'. Read of address 00316777. Katexxxsa Общие вопросы Delphi 1 03.10.2011 23:16
Ошибка "Access violation at address 004043A8 in module 'Project1.exe'. Read of address 00FF5A53." ms.Karishka Общие вопросы Delphi 6 14.04.2011 22:18
Ошибка: "Access violation at address 00454F01 in module 'Project1.exe'. Read of address 00000000. Fen1x Общие вопросы Delphi 8 13.10.2007 20:13