Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.06.2013, 19:26
Sentyabrina Sentyabrina вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Ошибка редактирования

Процедуры расположены в порядке вывода форм. Выдаёт ошибку редактирования таблицы 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;
Админ: Еще раз напоминаю про использовани етега CODE! При рецедиве последуют санкции. Читаем правила!

Последний раз редактировалось Admin, 20.06.2013 в 19:48.
Ответить с цитированием
  #2  
Старый 21.06.2013, 12:53
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Ну для начала
Если Вы собираетесь сделать 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; //<<==
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:29.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025