Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Марина
- Сообщения: 32
- Зарегистрирован: 14 дек 2005, 13:08
Сообщение
Марина » 04 июл 2006, 13:20
Всем привет!
Проблема такая. Я использую компоненты 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
Сообщение
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-ая она может быть разве что по порядку выборки с сервера.