Форум: "Начинающим";
Текущий архив: 2010.11.28;
Скачать: [xml.tar.bz2];
ВнизAV при использовании IBUpdateSQLW Найти похожие ветки
← →
Илья К. (2010-09-07 11:14) [0]Народ, второй раз сталкиваюсь с AV при использовании IBUpdateSQLW. После добавления очередного (не важно какого по счету) IBUpdateSQLW и привязки его к IBDataSet запускаю проект, всё работает как задумано, закрываю задачу и тут выскакивает AV. Убираю последний добавленный IBUpdateSQLW, запускаю проект, закрываю - AV исчез. Снова добавляю IBUpdateSQLW, настраиваю (при чём табличка и СКЛ выражения элементарные), снова появляется AV.
Подскажите, кто сталкивался, как лечить?
← →
Amoeba_ (2010-09-07 11:46) [1]
> как лечить?
Для начала выпрямить собственные руки.
← →
Илья К. (2010-09-07 11:50) [2]Amoeba_ , очень информативно. И в чем же, по Вашему "глубокоуважаемому" мнению, кривость рук?
← →
Amoeba_ (2010-09-07 12:22) [3]Это был просто тонкий намек на толстое обстоятельство: в вопросе напрочь отсутствует конкретная информация. Отсюда и стандартный ответ тоже без конкретики.
← →
Илья К. (2010-09-07 12:44) [4]конкретная информация - Есть табличка:
CREATE TABLE PROD_CATS (
PROD_CAT_ID INTEGER NOT NULL,
PROD_CAT_NAME VARCHAR(64) NOT NULL,
PROD_CAT_ORDER INTEGER
);
ALTER TABLE PROD_CATS ADD CONSTRAINT PK_PROD_CATS PRIMARY KEY (PROD_CAT_ID);
В проект добавляем IBDataSet, транзакция на чтение. (далеко не первый ДатаСет). Пишу туда селект - select * from PROD_CATS
К нему привязываю IBUpdateSQLW, транзакция на изменение (он тоже далеко не первый в проекте). Настраиваю: кл.поле - PROD_CAT_ID, изменяемое поле - PROD_CAT_NAME. Добавляю только инструкцию на изменение -
update PROD_CATS
set
PROD_CAT_NAME = :PROD_CAT_NAME
where
PROD_CAT_ID = :OLD_PROD_CAT_ID
Запускаю проект, ничё не нажимаю, ничё не выполняю, просто закрываю - возникает ошибка "AV".
Удаляю IBUpdateSQLW.
Запускаю проект, закрываю - ошибка не возникает.
Какой ещё конкретики?
← →
Amoeba_ (2010-09-07 13:17) [5]
> ничё не нажимаю, ничё не выполняю, просто закрываю - возникает
> ошибка "AV".
Тогда может просто где-то в коде напортачено?
← →
Palladin © (2010-09-07 13:25) [6]а потом выяснится что юный падаван где-то впихнул непотребность на онклосе формы...
а в первый раз-то чем все закончилось?
← →
Amoeba_ (2010-09-07 13:34) [7]Полагаю, что автору вопроса стоит ознакомиться с этой статьей:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1392
← →
Илья К. (2010-09-07 14:55) [8]Народ, извините что отвлек ваше внимание, я собсно и не надеялся что вы чёнибудь ответите.
Разъясняю для интересующихся. Из нескольких крупных и не очень проектов, эта ошибка, на ровном месте появилась в 2х. Понять/отловить её не могу, вот и поинтересовался, может у кого случалось такое.
[6]
Простите сэр рыцарь, мне падавану сиволапому никогда не постичь сего благородного колдунства.
ПОВТОРЯЮ ДЛЯ "ОДАРЁННЫХ" ДЖЕДАЕВ: добавил компонент - возникает AV. Убираю компонент - AV исчезает.
Короче тема закрыта.
← →
Илья К. (2010-09-07 16:17) [9]Народ, ещё минутку вашего внимания. Отдельное спасибо Amoeba_ , статья натолкнула на мысли.
Вобщем ощибка была тут:
destructor TIBUpdateSQL.Destroy;
var
UpdateKind: TUpdateKind;
begin
ошибка тут>> if Assigned(FDataSet) and (FDataSet.UpdateObject = Self) then
FDataSet.UpdateObject := nil;
for UpdateKind := Low(TUpdateKind) to High(TUpdateKind) do
FSQLText[UpdateKind].Free;
inherited Destroy;
end;
и то не ошибка, а глюк какой то, при уничтожении самого первого, по времени написания, IBUpdateSQLW параметр FDataSet был в унакцессабле.
Решил так: удалил самый первый по времени написания IBUpdateSQLW, за тем добавил вновь, ошибка исчезла.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.11.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c