Как ПРАВИЛЬНО ловить курсор в табл. после передер. сервера?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Закрыто
Марина
Сообщения: 32
Зарегистрирован: 14 дек 2005, 13:08

Как ПРАВИЛЬНО ловить курсор в табл. после передер. сервера?

Сообщение Марина » 04 июл 2006, 13:20

Всем привет! :D
Проблема такая. Я использую компоненты IBQuery, IBUpdateSQL, DataSource. Узменения в таблице произошли, транзакция подтвердилась, сервер передернули с клиента. У меня пользователь сидит в табличке или во вьюшке скажем где-то в середине - редактирует запись, т.е. впереди 100 записей, он редактирует 101-ю и сзади тоже 100 записей (всего в таблице 200 записей). Пока он ее редактировал, другой пользователь удалил его запись и еще 70 записей вперед. Т.е. теперь курсор надо поставить на 30-ю запись! Вопрос в том как ПРАВИЛЬНО это сделать! Помогите пожалуйста! )))

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 04 июл 2006, 13:32

Вам бы продолжать начатую вами же тему с таким же названием.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 04 июл 2006, 13:39

Никак это нельзя сделать. После переоткрытия наборе "нумерация" записей теряется.
P.S. Марина, пишите в соответствующую тему (http://forum.ibase.ru/phpBB2/viewtopic.php?t=2388), которую сами и создали. Если текущие ответы вас не удовлетворяют, пишите в ней. Эту я через некоторое время удалю. Дубли здесь ни к чему.

vanek_t
Сообщения: 13
Зарегистрирован: 04 июл 2006, 13:54

Сообщение vanek_t » 04 июл 2006, 14:04

Попробуйте через закладки!

т.е есть тип TBookMark;

тогда в вашем случае

Код: Выделить всё

var
  CurRecord : TBookMark;
begin
  try
     CurRecord := DataSource.Datase.GetBookMark;
     DataSource.Dataset.Close;
     DataSource.Dataset.Open;
     Datasource.Dataset.GotoBookMark(CurRecord);
  finally
     Datasource.Dataset.FreeBookMark(CurRecord);
  end;
end;
[модератор: учимся использовать тэг code в сообщениях]

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Re: Как ПРАВИЛЬНО ловить курсор в табл. после передер. серве

Сообщение CyberMax » 04 июл 2006, 14:09

Вот чем плохо обсуждение в нескольких темах.

2vanek_t.
Марина писал(а):Пока он ее редактировал, другой пользователь удалил его запись и еще 70 записей вперед.
Запись уже удалена. Как следствие, закладка недействительна.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 июл 2006, 15:08

Т.е. теперь курсор надо поставить на 30-ю запись!
не существует никаких "30-ых" записей. Пора привыкнуть, что в SQL производятся операциями над множествами, где нет понятия "первый, последний" и т.п. 30-ая она может быть разве что по порядку выборки с сервера.

Закрыто