-
Доброго времени суток.
У меня есть датасет TdxMemData. В нем н-тое количество записей.
Вопрос 1. Можно ли обновлять записи в датасете, так чтобы грид к торому датасет привязан не отображал смещение индикатора? Не заню, может есть вариант избежать метода локейт в датасете.
Вопрос 2. По таймеру происходит обновление одного из полей каждой записи. Я бегусь по каждой записи и обновляю данные.
При этом у пользователя есть возможность через грид в любой момент времени править данные в гриде к которому подвязан датасет. Если пользоатель начинает правки, а таймер в этот момент начинает бежать по всем записям, то получается совсем не хорошо.
Посоветуйте, может есть хороший вариант эту ситуацию разрулить?
-
DataSet.DisableControls;
try
побежали по датасету
finally
DataSet.EnableControls;
end;
-
> [0] Anton Nagornyi (19.06.12 22:50)
> По таймеру происходит обновление одного из полей каждой записи.
Что-то в этом не то.
-
> Можно ли обновлять записи в датасете, так чтобы грид к торому
> датасет привязан не отображал смещение индикатора? Не заню,
> может есть вариант избежать метода локейт в датасете.
>
Такого способа нет. Индикатор всегда указывает на "активную" запись в датасете. А уж какая запись в датасете активна в данный момент зависит только от тебя!
-
Спасибо. Про DataSet.DisableControls я не знал, подходит.
-
для ADODataSet + MSSQL использую ADODataSet.Requery
для DOA + Oracle использую:
--------------
procedure TForm1.ODSRefresh(ADataSet: TDataSet);
var
ABookmark: TBookmark;
begin
ABookmark:=ADataSet.GetBookmark;
ADataSet.Refresh;
try
ADataSet.GotoBookmark(ABookmark);
except
ADataSet.FreeBookmark(ABookmark);
end;
ADataSet.FreeBookmark(ABookmark);
end;
--------------
-
Юзер правит данные напрямую в базе через грид??? Поймать и бить "книжкой по SQL" до прозрения!
> Если пользоатель начинает правки, а таймер в этот момент
> начинает бежать по всем записям, то получается совсем не
> хорошо.
Кури слово транзакция. (после прозрения)
-
>u905097 (20.06.12 15:57) [5]
контрольный FreeBookmark таки имеет смысл?)
-
> контрольный FreeBookmark таки имеет смысл?)
Ну не знает человек про finally, что-ж ему теперь...
Хотя так делать нельзя.
-
>Ega23 © (20.06.12 18:00) [8]
я, собственно, к тому, что не стоит, наверное, давать советы, "плавая" в теме.))