Текущий архив: 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