Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
6-101426
XHelp
2002-09-01 14:42
2002.10.31
idHTTP + Proxy???


3-101163
nikolo
2002-10-11 12:20
2002.10.31
Как вычесть из запроса те строки, которые есть в другой таблице?


3-101162
yaJohn
2002-10-10 15:23
2002.10.31
Как быстро перекачать данные между двумя DataSet?


1-101241
Kpv
2002-10-22 10:29
2002.10.31
Динамическое меню


3-101173
Mick
2002-10-11 13:41
2002.10.31
Не работает триггер Befor Insert в IB6+Infopower3000




   Наверх