![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Процедуры расположены в порядке вывода форм. Выдаёт ошибку редактирования таблицы 4. Попыталась поставить условия для смены состояния таблицы, но запуталась, в том, где они нужны, ибо 3ий день с делфи знакома. Помогите пожалуйста=)
Код:
procedure TForm1.Button9Click(Sender: TObject);
begin
Form13.ShowModal;
end;
procedure TForm13.RadioButton3Click(Sender: TObject);
var i,n:integer;
begin
Form14.ShowModal;
if DataModule1.DataSource4.State=dsBrowse then
DataModule1.ADOTable4.Edit;
begin
DataModule1.ADOTable1.DisableControls;
DataModule1.ADOTable1.Last;
DataModule1.ADOTable1.First;
n:=DataModule1.ADOTable1.RecordCount;
if n<>0 then
For i:=1 to n do begin
if (DataModule1.ADOTable1.Fields[1].AsString=Form14.DBComboBox5.Text)
and (not Eof) then DataModule1.ADOTable1.Delete;
end;
DataModule1.ADOTable1.EnableControls;
end;
if DataModule1.DataSource4.State=dsBrowse then
DataModule1.ADOTable4.Edit;
DataModule1.ADOTable4.Delete;
DataModule1.ADOTable4.Post;
end;
procedure TForm14.Button1Click(Sender: TObject);
begin
if DataModule1.DataSource4.State=dsBrowse then
DataModule1.ADOTable4.Edit;
DataModule1.ADOTable4.Post;
if DataModule1.DataSource4.State=dsBrowse then
DataModule1.ADOTable4.Edit;
end;Последний раз редактировалось Admin, 20.06.2013 в 19:48. |
|
#2
|
|||
|
|||
|
Ну для начала
Если Вы собираетесь сделать Delete, то Edit и потом Post не нужен. Edit нужен тогда, когда Вы хотите поменять некоторые поля у одной записи, а затем записать её обратно в таблицу с помощью Post Второе перебирать рекорды у таблицы нужно примерно так Код:
ADOTable1.DisableControls;
try // это на всякий случай(см.ниже)
ADOTable1.First;
if ADOTable1.RecordCount n<>0 then // эту строчку можно убрать
while not ADOTable1.Eof do begin
if (..подставьте условие..) then
ADOTable1.Delete
else //<<==--
ADOTable1.Next; //<<==--
end;
finally // на случай, если произойдёт ошибка
ADOTable1.EnableControls;
end; //<<== |