Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

Про редактирования ячеек   Найти похожие ветки 

 
IGORYOK ©   (2003-10-30 19:20) [0]

Написал такое ( вообще надо просто изменить значение в одном поле - не пойму чего столько проблем)
Поле это булен. Использую ADO. Базу mdb.
with DMOd.ListStudT do begin
RecNo:=1;
Edit; //написал режим редактирования
for i:=1 to DMod.ListStudT.RecordCount do begin
if DMod.ListStudTGroupYear.AsInteger=YearScrol.Position then DMod.ListStudTUchatsa.AsBoolean:=True;
RecNo:=RecNo+1;
end;
Post; // может после редактировани не надо постить, а что тогда надо делать
end;


 
Mike Kouzmine ©   (2003-10-30 19:25) [1]

IGORYOK © (30.10.03 19:20) И что - работает?


 
IGORYOK ©   (2003-10-30 19:35) [2]

Ну если б работало я бы сюда не посылал у меня вопрос надо ли пост использовать при edit e


 
Mike Kouzmine ©   (2003-10-30 19:36) [3]

Я про другое. А что не правильно делает?


 
Zacho ©   (2003-10-30 19:45) [4]


> IGORYOK © (30.10.03 19:20)

А вот как делать правильно:

DataSet.First;
while not DataSet.EOF do
begin
if .. then
begin
DataSet.Edit;
... // Редактирование полей текущей записи набора данных
DataSet.Post;
end;
DataSet.Next;
end;


 
AbrosimovA   (2003-10-31 08:20) [5]

Перед DataSet.Next не нужно писать DataSet.Post, так как в режиме редактирования Next кроме перемещения на следующую запись аналогичен ещё и Post.


 
Anatoly Podgoretsky ©   (2003-10-31 10:12) [6]

AbrosimovA (31.10.03 08:20) [5]
А потом будем спрашивать куда делисб изменения в последней записи?


 
sniknik ©   (2003-10-31 10:27) [7]

Anatoly Podgoretsky © (31.10.03 10:12) [6]
а лишний вызов процедуры в немаленьком (возможно) цикле, это правильно?
делаю обычно так (на правильность в единственном варианте не претендую ;о))

DataSet.First;
while not DataSet.EOF do begin
if .. then begin
DataSet.Edit;
... // Редактирование полей текущей записи набора данных
end;
DataSet.Next;
end;
if (DataSet.State=dsEdit) or (DataSet.State=dsInsert) then DataSet.Post;


 
Johnmen ©   (2003-10-31 10:37) [8]

>sniknik © (31.10.03 10:27)

А так красивше
if DataSet.State in dsEditModes then DataSet.Post;
:)


 
AbrosimovA   (2003-10-31 11:55) [9]


> Anatoly Podgoretsky © (31.10.03 10:12) [6]
> AbrosimovA (31.10.03 08:20) [5]
> А потом будем спрашивать куда делисб изменения в последней
> записи?


Вот кусок текста из справки по процедуре Post:

...such as First, Last, Next, and Prior automatically call Post.

И попробуйте опровергнуть это.


 
Vlad ©   (2003-10-31 12:00) [10]

>AbrosimovA (31.10.03 11:55) [9]
Речь идет о том что будет если Post убрать вобще. Тогда произойдет именно то что сказал Anatoly Podgoretsky © (31.10.03 10:12) [6]


 
Плохиш_   (2003-10-31 12:01) [11]

>AbrosimovA (31.10.03 11:55) [9]

В каком месте здесь стоит Close


 
sniknik ©   (2003-10-31 12:03) [12]

AbrosimovA (31.10.03 11:55) [9]
а он и не опровергал это, а указал на неточность в твоем дополнении. если следовать твоему уточнению и просто убрать Post из цикла (без дополнительного в конце, про который ты не упомянул) то будут потери на последней записи (не всегда конечно, только в случае выхода на незакрытом датасете, но это неважно, наоборот труднее отследить).



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
3-65697
Ozone
2003-10-28 07:54
2003.11.20
Все тот же ADO


1-65986
Buffoon
2003-11-10 17:12
2003.11.20
Компонент


11-65809
asp
2003-03-03 21:40
2003.11.20
Обработка сообщений.


14-66060
stone
2003-10-28 13:03
2003.11.20
Невероятно, но мы выжили!


4-66176
bar
2003-09-24 15:08
2003.11.20
Можно ли в RichView вставить кнопку