Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вернуться на запись в recordset'е? 
:(
    Опции темы
NetShadow
Дата 14.9.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.9.2006

Репутация: нет
Всего: нет



Вобщем ситуация такая, есть TDBGridEx1, связанный с запросом TSmartQuery1, через датасорс TOraDataSource1, ситуация такая, есть кнопка, которая форматирует записи в полях гида, циклом пробегается по всему DataSet'у и возвращается на первую запись не зависимо от того на каку запись поставил, можно ли сделать, чтобы возвращалась на запись на которую выделял?
PM MAIL ICQ   Вверх
ALeXandrK
Дата 14.9.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Запомнить уникальный ключ или другое значение нужной записи, а потом
воспользоваться методом Locate(...), который тебя вернет на эту запись.

А лучше изменить в твоем алгоритме ту часть, которая бегает по всему DataSet`у,
и превратить ее в запрос с помощью TADOStoredProc или TADOCommand, тогда
скорость увеличиться и запись искать не придется.


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Bose
Дата 14.9.2007, 12:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Стандартный подход - использование закладок:
Код

Procedure MakeSomethingWithDataset(DataSet : TDataSet);
Var Bookmark : TBookmark;
Begin

  Bookmark := Dataset.GetBookmark; // zapominajem zapisj
  Try
    DataSet.First;
    While not DataSet.Eof Do
    Begin
      // delajem 4to-nibudj
        DataSet.Next;
    End;

    DataSet.GotoBookmark(Bookmark); // vozvrawaemsja k staroj zapisi

  Finally
    DataSet.FreeBookmark(Bookmark); // osvobozhdaem zakladku
  End;

End;



Это сообщение отредактировал(а) Bose - 14.9.2007, 12:48
PM MAIL WWW Skype   Вверх
pseud
Дата 17.9.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Код

i := DataSet.RecNo;
{манипуляции}
DataSet.RecNo := i;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.