Текущий архив: 2002.10.31;
Скачать: CL | DM;
Вниз
Уважаемые! IBDataSet - как он работает? Найти похожие ветки
← →
soni (2002-10-09 15:27) [0]Уважаемые Мастера, не сочтите за нелепость, но сложно разобраться с работой IBDataSet:
Есть
DeleteSQR: delete from MEASURE
where DATEMSR = :OLD_DATEMSR and
UIDEV = :OLD_UIDEV
SelectSQL: select * from MEASURE
InsertSQL: insert into MEASURE
(UIDEV, DATEMSR, VALUEMSR, RES, REGIM, TIMEMES)
values
(:UIDEV, :DATEMSR, :VALUEMSR, :RES, :REGIM, :TIMEMES)
ModifySQL: update MEASURE
set
VALUEMSR = :VALUEMSR,
RES = :RES,
REGIM = :REGIM,
TIMEMES = :TIMEMES
where
DATEMSR = :OLD_DATEMSR and
UIDEV = :OLD_UIDEV
И вот пытаюсь я изменить в цикле определенные записи и делаю по циклу IBDataSet.locate("DATEMSR;UIDEV",.....)
затем IBDataSet.Edit
и "в лоб" присваиваю новые значения (IBDataSetRES.value:=....)
Тогда зачем нужны все эти ModifySQL, DeleteSQL ?
← →
Johnmen © (2002-10-09 15:42) [1]Чтобы вносить изменения в реальную таблицу.
>и "в лоб" присваиваю новые значения (IBDataSetRES.value:=....)
значения полей набора данных, а не реальной табл.
← →
soni (2002-10-09 15:52) [2]Извините, но не совсем понятно, т.е. я не могу используя эти самые ModifySQL исправлять данные например за определенную дату (по маске), а применимы они только если я, например, в DBGride "стою" на необходимой записи и пытаюсь ее редактировать?
← →
User0 © (2002-10-09 15:59) [3]Для этого достато4но IBTable...
← →
Johnmen © (2002-10-09 16:03) [4]ModifySQL выполняется после того, как были сделаны изменения в текущей записи НД и вызван (явно или нет) метод Post.
При этом параметрам ModifySQL присваиваются значения соответствующих полей из НД.
Как будет выглядеть ModifySQL - дело разработчика...
← →
soni (2002-10-09 16:07) [5]>>User0
По-началу так и было, но есть большое желание сделать прогу сетевой - это первый опыт, и потому решила перейти на запросы, но и здесь есть проблема - в этой самой табличке ( MEASURE ) порядка 300000 записей и при попытке сделать Locate к IBDataSet все "виснет" чуть-ли не через раз. Со связкой IBQuery+IBUpdateSQL ругалась на нередактируемость.
← →
Max Zyuzin © (2002-10-09 16:15) [6]>soni (09.10.02 15:27)
Дело в том, что когды вы делаете Edit, Insert на самом деле используюятся именно те SQL запросы что вы написали.
порядка 300000 записей и при попытке сделать Locate к IBDataSet
А зачем так жестоко? Вам нужно просматирвать все записи сразу (все 300000)
Можно например Select выбирать нужную вам запись... это будет быстрее
← →
soni (2002-10-09 16:44) [7]> Johnmen Большое спасибо за разъяснения!!!
> Max Zyuzin - Большое спасибо за совет, само в голову не пришло - спасибо есть знающие!
Страницы: 1 вся ветка
Текущий архив: 2002.10.31;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.016 c