powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамическое обновление данных в recordset
11 сообщений из 11, страница 1 из 1
Динамическое обновление данных в recordset
    #32600174
Shurik777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует ситуация:
Некий рекордсет с данными

Код: plaintext
1.
2.
conn.Provider = "Microsoft.Jet.OLEDB.4.0;"
conn.Open pathMDB, "admin", ""
rst.Open "select * from alltovar", conn, adOpenKeyset, adLockOptimistic

далее производим некую манипуляцию:

Код: plaintext
conn.execute("UPDATE AllTovar SET checkInsert = False WHERE (((AllTovar.checkInsert)=True))")

До того того момента пока не дашь метод rst.requery данные в рекордсете не обновляются. А если сделаешь обновление, то выборка заполняется с нуля (как я понимаю).

Соб-но вопрос: А как сделать, чтобы обновлялись данные в рекордсете, только измененные, не перезапуская весь запрос.
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600220
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а ты сначла сделай обновление,
а потом запрос с условием по обновлению.
зачем тебе открывать всю таблицу?
(rst.Open "select * from alltovar", conn, adOpenKeyset, adLockOptimistic)
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600394
Shurik777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ищзачем тебе открывать всю таблицу?

Вот в том то и дело, что надо всю. Таблица - каталог (а-ля прайс) в котором есть признаки выбора товара и соответственно его количества.
В общем структура по любому должна остаться неизменной.
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600405
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шурик777, чевота там напридумывал
а мы ломай голову: зачем ты так сделал? хрен тебя знаит.
шобы табе прально сказать, надоть
знать всю идею.
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600563
Shurik777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ищшобы табе прально сказать, надоть
знать всю идею.
Идея такая
На форме 2 грида
1 - грид (AllTovar товар из БД; колонки - checkInsert, name, code, price, zakaz, prim) ~ 200000 записей
2 - грид (свободный - туда попадают любые результаты отбора)

к первому гриду привязан рекордсет (см. сабж), на грид установлены свойства запрета прямого редактирования.

На форме есть кнопочка (загрузка) -> по клику - событие ->
1. Обновление всех полей checkInsert->false (см. сабж)
2. Загрузка во второй грид данных
3. Поиск и обновление в таблице AllTovar соответствия по Code поля checkInsert->true
поскольку все изменения происходят напрямую в таблице Alltovar, у меня в гриде никаких изменений не происходит :-(

так вот и сам вопрос:
До того того момента пока не дашь метод rst.requery данные в рекордсете не обновляются. А если сделаешь обновление, то выборка заполняется с нуля.
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600777
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
200000 записей в гриде?
ИМХО - надо что-то менть в самом понимании о программировании
Человек не сможет реально работать даже со 100 записями одновременно!!!
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600827
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
так вот и сам вопрос:
До того того момента пока не дашь метод rst.requery данные в рекордсете не обновляются. А если сделаешь обновление, то выборка заполняется с нуля


попробуй
1 добавить штамп времени в таблицу
2 делаешь запрос к таблице к значениям ид и штампа времени
3 сравниваешь эти значения с текущими в рекордсете грида
4 те которые не совпадают - делаешь Resync

может можно и проще но в голову приходит только это.
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600847
bazaea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adOpenKeyset поменяй на adOpenDynamic
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32600859
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторadOpenKeyset поменяй на adOpenDynamic

и чем это поможет?
при Requery будут подтягиваться только измененные извне?
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32601262
Shurik777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК[quot автор]
попробуй
...
3 сравниваешь эти значения с текущими в рекордсете грида
4 те которые не совпадают - делаешь Resync


Идея хорошая, но ...
В гриде одновременно отображаются порядка 30~40 записей (от размера окна зависит), а в методе .Resync есть только один подходящий параметр -adAffectCurrent (обновлять только текущую запись), теперь наша ситуация:

Код: plaintext
1.
2.
3.
4.
5.
6.
цикл i с topRow по botRow
{
    rst.move sss
    rst2 = select isChek, name, code ... 
    if rst!isCheck <> rst2!isCheck
       {rst.resync adAffectCurrent}
}

займет хороший промежуток времени при обновлении (скроле, развороте экрана и т.д.)
...
Рейтинг: 0 / 0
Динамическое обновление данных в recordset
    #32601288
Shurik777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК[quot автор]
...
4 те которые не совпадают - делаешь Resync


Хотя в частном случае (обновление - в момент загрузки) идея отличная :)
Спасибо
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамическое обновление данных в recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]