Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизIBX и DeleteSQL() Найти похожие ветки
← →
londinium (2006-07-23 15:17) [0]День добрый,Господа!
Работаю с БД FireBird 1.5 SS c помощью IBX(C++Builder 6.0 SP4).Пишу код на удаление записи из таблицы так:
IBDataSet1->Close();
IBDataSet1->DeleteSQL->Clear();
IBDataSet1->DeleteSQL->Add("delete from refworkers where ID=:ID");
IBDataSet1->Open();
IBDataSet1->Delete();
IBDataSet1->FieldByName("ID")->AsInteger=5;
try
{
IBDataSet1->Post();
IBTransaction1->Commit();
IBDataSet1->Close();
MessageBox(0,"Запись удалена","ИНФОРМАЦИЯ",MB_ICONINFORMATION);
}
catch(...)
{
MessageBox(0,"Ошибка удаления записи", "ОШИБКА",MB_ICONSTOP);
IBTransaction1->Rollback();
IBDataSet1->Close();
}
Получаю по морде исключением "Not in edit mode". Вопрос: как встать в edit mode и удалить эту запись
← →
Desdechado © (2006-07-23 15:21) [1]Post нужен только после Edit или Insert или Append
У тебя этого ничего нет, на кой Post?
А что за присваивание пятерки после удаления строки?
← →
Johnmen © (2006-07-23 16:06) [2]
> londinium (23.07.06 15:17)
Т.е. вот так вот берём и удаляем непонятно какую запись, не обращая внимания, что и её может не быть????????????????
← →
jack128 © (2006-07-23 19:03) [3]londinium (23.07.06 15:17)
Пишу код на удаление записи из таблицы так:
видимо ты не совсем представляешь, что такое TIBDataset. Точнее СОВСЕМ не представляешь.
метод IBDataSet1->Delete(); удаляет ТЕКУЩУЮ запись. Вот это IBDataSet1->FieldByName("ID")->AsInteger=5; - не на что не влияет.
Твой код нужно переделать примерно такprocedure DeleteRefWorker(AID: Integer);
var
SQL: TIBSQL;
InTransaction: boolean;
begin
SQL := TIBSQL.Create(nil);
try
SQL.Database := MainDataModule.db;
SQL.Transaction := MainDataModule.RWTransaction;
SQL.SQL.Text := "delete from refworkers where ID=" + IntToStr(AID);
InTransaction := SQL.Transaction.InTransaction;
if not InTransaction then
SQL.Transaction.StartTransaction;
try
SQL.ExecQuery;
finally
if not InTransaction then
SQL.Transaction.Commit;
end;
finally
SQL.Free;
end;
end;
← →
londinium (2006-07-23 22:07) [4]Здравствуйте!
Всем спасибо за ответы.Сейчас попробую.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c