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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.04.2013, 10:45
Rom@nEm Rom@nEm вне форума
Прохожий
 
Регистрация: 28.03.2013
Адрес: Астрахань
Сообщения: 31
Версия Delphi: Rad Studio XE3
Репутация: 10
По умолчанию Как перемещать курсор по записям в TFibDataSet

Приложение FireMonkey. Есть ФибДатаСет, отображение набора данных через TMSFMXGrid, посредством LiveBinding. В таблице можно выделять несколько строк. Как осуществить удаление нескольких строк. С одной строкой все впорядке выделяю строку и вызываю метод ФибДатаСета Dlete. При нескольких выделенных строках необходимо перемещать курсор по записям в ФибДатаСете использовался метод
Код:
FibDataSet.GotoBookMark(pointer(Grid.SelectedRow[i])))
такой код не срабатывает помогите плиз

Последний раз редактировалось Rom@nEm, 19.04.2013 в 15:42.
Ответить с цитированием
  #2  
Старый 19.04.2013, 12:32
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

в EhLib удаляю несколько записей так:
Код:
  if LIST_DS.RecordCount <> 0 then
    if DM.MessDlgQ('Точно?') = mrYes then
      try
        if lGrid.SelectedRows.Count > 1 then
          lGrid.SelectedRows.Delete
        else
          LIST_DS.Delete;
        LIST_DS_TR.CommitRetaining;
      Except
        on E : Exception do
        begin
          LIST_DS_TR.RollbackRetaining;
          ShowErrMess(E.Message);
        end;
      end;
возможно в TMSFMXGrid есть что-то похожее
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 19.04.2013, 15:17
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Rom@nEm
Код:
FibDataSet.GotoBookMark(pointer(Grid.RowSelected[i])))
При удалении цикл надо в обратном направлении крутить, через downto.
Ответить с цитированием
  #4  
Старый 19.04.2013, 15:20
Rom@nEm Rom@nEm вне форума
Прохожий
 
Регистрация: 28.03.2013
Адрес: Астрахань
Сообщения: 31
Версия Delphi: Rad Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
в EhLib удаляю несколько записей так:
Код:
  if LIST_DS.RecordCount <> 0 then
    if DM.MessDlgQ('Точно?') = mrYes then
      try
        if lGrid.SelectedRows.Count > 1 then
          lGrid.SelectedRows.Delete
        else
          LIST_DS.Delete;
        LIST_DS_TR.CommitRetaining;
      Except
        on E : Exception do
        begin
          LIST_DS_TR.RollbackRetaining;
          ShowErrMess(E.Message);
        end;
      end;
возможно в TMSFMXGrid есть что-то похожее
Я не понял? Когды вы удаляете несколько записей вы удаляете строки таблицы, а если одну запись, то используете метод DELETE Датасета????

Последний раз редактировалось Rom@nEm, 19.04.2013 в 15:28.
Ответить с цитированием
  #5  
Старый 19.04.2013, 15:41
Rom@nEm Rom@nEm вне форума
Прохожий
 
Регистрация: 28.03.2013
Адрес: Астрахань
Сообщения: 31
Версия Delphi: Rad Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
При удалении цикл надо в обратном направлении крутить, через downto.
А опчему цикл в обратном направлении
Ответить с цитированием
  #6  
Старый 19.04.2013, 15:44
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

все верно . когда удаляется несколько записей - грид сам проходит по ним в цыкле - и удаляет из датасета))
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter