Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

работа с DataSource1.DataSet.Delete   Найти похожие ветки 

 
-=snoop=- ©   (2005-07-04 13:53) [0]

на форме лежит объект TDBGrid .DataSource берет данные с ADOQuerry. Не могу отработать удаление выдеоенной строки
отработка данного кода

form1.DBGrid1.DataSource.DataSet.GotoBookmark                   (pointer(form1.DBGrid1.SelectedRows.Items[i])) ;
form1.ataSource1.DataSet.Delete() ;

вызывает ошибку
Multiple-step operation generated errors. Check each status value


 
Ega23 ©   (2005-07-04 14:05) [1]

Наверное, следует удалять не строки в наборе данных, а записи в БД, а потом набор данных переоткрывать?


 
Anatoly Podgoretsky ©   (2005-07-04 14:05) [2]

Верь ему, сказано что пытаешь удалить более одной записи, значит так и есть.


 
-=snoop=- ©   (2005-07-04 14:14) [3]

что нашел в нете

Procedure TMaintainTemplateFrm.DeleteBtnClick(Sender: TObject);
begin
If MessageDlg("Delete this record", mtConfirmation,
[MBYes, MBNo], 0) = mrYes Then
DataSource1.DataSet.Delete;
End;

я ведь стою на записи в курсоре и работа происходит с ней, пример конечно не может и не правилен, но код

showmessage(form1.DBGrid1.DataSource.DataSet.FieldValues["lbl_name"])

вернет значение текущей записи


 
Johnmen ©   (2005-07-04 14:15) [4]

Просто у тебя нет ключевой информации для однозначной идентификации записи в наборе данных (или курсоре).


 
Anatoly Podgoretsky ©   (2005-07-04 14:25) [5]

-=snoop=- ©   (04.07.05 14:14) [3]
Пример правильный и ошибка тоже правильная, а ты находишь в этом противоречие?


 
-=snoop=- ©   (2005-07-04 14:34) [6]

да вижу, в примере не передается параметр, который указывает на запись


 
Slym ©   (2005-07-04 14:43) [7]

Сначала сохраняем букмарки (при движении по Dataset SelectedRows очищается!)
 for i:=form1.DBGrid1.SelectedRowCount-1 downto 0 do
   List.Add(Dataset.GetBookmark);
 for i:=0 to List.Count-1 do
 begin
   Dataset.GotoBookmark(List[i]);
   Dataset.FreeBookmark(List[i]);
   Dataset.Delete;
 end;


 
Slym ©   (2005-07-04 14:47) [8]

Фу гоню
for i:=form1.DBGrid1.SelectedRowCount-1 downto 0 do
  StringList.Add(form1.DBGrid1.SelectedRows.Items[i]);
for i:=0 to List.Count-1 do
begin
  Dataset.Bookmark:=StringList[i];
  Dataset.Delete;
end;


 
Slym ©   (2005-07-04 14:59) [9]

Или попробуй так
with form1.DBGrid1 do
begin
 DataSource.DataSet.DisableControls;
 try
  for i:=0 to SelectedRowCount-1 do
  begin
    DataSource.DataSet.BookMark:=SelectedRows.Items[i];
    DataSource.DataSet.Delete;
  end;
 finally
   DataSource.DataSet.EnableControls;
 end;
end;


 
-=snoop=- ©   (2005-07-04 15:04) [10]

2Slym спасибо
а может есть линк,на что почитать?



Страницы: 1 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
14-1121778131
oldman
2005-07-19 17:02
2005.08.14
Ну надо же было так прогнуться...


3-1120653967
Ольга
2005-07-06 16:46
2005.08.14
SQL - запрос на удаление по условию


14-1121998201
SoftX
2005-07-22 06:10
2005.08.14
Запишите свой пароль!


3-1120466256
stud
2005-07-04 12:37
2005.08.14
использование ibscript


3-1120461930
Draught
2005-07-04 11:25
2005.08.14
suser_id()