ошибка: Project raised exception class 'External:SIGSEGV'.
Модератор: Модераторы
ошибка: Project raised exception class 'External:SIGSEGV'.
Всем доброго времени суток!
выскакивает странная ошибка при событии Afterscroll в ADOQuery: Project raised exception class 'External:SIGSEGV'.
Подскажите что это может быть
выскакивает странная ошибка при событии Afterscroll в ADOQuery: Project raised exception class 'External:SIGSEGV'.
Подскажите что это может быть
Т.к нет ни кода, ни проекта, то включаем режим Нострадамуса: возможно идёт обращение к объекту, который ещё не создан(например для него не вызывалось Create(), типа обявил переменную типа ADOQuery, а сделать для неё типа: "q := QDOQuery.Create()" заюыли), либо обращение к указателю, который уже никуда не указывает.
указатель верный, не знаю что уже здесь не так. Может что то не понимаю, я в этом новичок
Последний раз редактировалось jenny 14.09.2015 12:23:58, всего редактировалось 1 раз.
ADOQuery2.FieldByName('c_id').asString
Проверьте, что с ADOQuery2 всё в порядке и что данный запрос выдаёт таки приемлемое значение
А ещё лучше, привыкайте к использованию параметров.
Проверьте, что с ADOQuery2 всё в порядке и что данный запрос выдаёт таки приемлемое значение
Код: Выделить всё
procedure TForm1.ADOQuery2AfterScroll(DataSet: TDataSet);
var aValue: string;
begin
ADOquery1.Close;
ADOQuery1.SQL.Clear;
aValue := ADOQuery2.FieldByName('c_id').asString;
ADOQuery1.SQL.Add('select * from question where c_id='+aValue);
ADOQuery1.Open;
end; А ещё лучше, привыкайте к использованию параметров.
Код: Выделить всё
procedure TForm1.ADOQuery2AfterScroll(DataSet: TDataSet);
begin
ADOquery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from question where c_id=:id');
ADOQuery1.ParamByName('id').asString := ADOQuery2.FieldByName('c_id').asString;
ADOQuery1.Open;
end; Все два способа проверила, все равно выскакивает ошибка
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
А на какой конкретно строчке процедуры ADOQuery2AfterScroll ошибка, если сделать точку останова на первом операторе и проходить в отладчике по F8?
на строчке begin...
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
jenny писал(а):на строчке begin...
А если закомментировать всё внутри процедуры (но оставить саму процедуру) - SIGSEG появляется?
Снег Север писал(а):А если закомментировать всё внутри процедуры (но оставить саму процедуру) - SIGSEG появляется?
нет тогда ошибка не появляется. Да кстати этот же код я использовала в других событиях и никакой ошибки нет. Только на AfterScroll...
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
А на чем у вас программа - делфи или лазарус? Какая версия? Какие компоненты используются? Потому, что я проверял на своей тестовой программе с ADO с компонентами Zeos и там всё работает в AfterScroll .
