Я ищу решение довольно серьезной проблемы, с которой я сталкиваюсь; Я хочу удалить запись в dbGrid, но когда я нажимаю на свою закодированную кнопку и подтверждаю «Удалить», я не нахожу немедленных результатов. Чтобы найти результат удаленной записи, мне нужно закрыть программу и повторно запустить ее. Только после этого я вижу, что запись удалена.Удаление записей в dbGrid Delphi 2010
Моего кодирование выглядит в основном следующим образом
procedure TfrmPunte.btnDeleteClick(Sender: TObject);
var
sName, sLeerderNo : string;
begin
with dmPunte do
begin
sLeerderNo := tblLeerder['LeerderNr'];
sName := tblLeerder['NaamVan'];
if MessageDlg('Is jy seker dat jy ' + sName + ' met Leerder Nommer ' + sLeerderNo + ' wil wis van die rekords? Neem kennis dat al die rekords van sy/haar aktiwiteite ook uitgevee sal word!', mtWarning, [mbOk, mbCancel],0) = mrOK then
tblDeelname.Open;
tblDeelname.First;
while NOT tblDeelname.Eof do
begin
if tblDeelname['LeerderNr'] = sLeerderNo then
tblDeelname.Delete;
tblDeelname.Next;
end;
tblLeerder.Delete;
tblLeerder.Active := False;
tblLeerder.Active := True;
end;
end;
Я использую таблицу ADO, подключенную к ADO соединения, подключенное к базе данных ACCESS. Я делаю appologize, некоторые имена переменных находятся на африкаанс. Что мне делать?
Запись, которая должна была быть удалена, по-прежнему отображается в сетке db, я использую таблицу ADO с подключением ADO. –
В кратком виде: следующее после удаления пропустит одну запись после удаления записи. Вы должны вставить else перед следующим –
Я полагаю, что «tblLeerder» и «tblDeelname» являются одновременно и TADODataSet, и в сетке отображается содержимое «tblDeelname». Затем вам нужно включить actice: = false и active: = true после tblDeelname.delete. Если tblLeerder подключен к DBGrid, вопрос в том, что вы хотите видеть? –