![]() |
|
|
Регистрация | << Правила форума >> | 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; //<<== |