Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обновить записи в recordset'е? / 8 сообщений из 8, страница 1 из 1
10.10.2003, 16:48
    #32290235
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Имеется класс источник данных:

в модуле класса:
_______________________________________________________________________________
Private mrsCustomer As ADODB.Recordset

Private Sub Class_Initialize()
Set mcn = New ADODB.Connection
mcn.ConnectionString = "DSN=JetDataBase"
mcn.Open

Set mrsCustomer = New ADODB.Recordset
mrsCustomer.Source = "select * from tblCustomer"
mrsCustomer.ActiveConnection = mcn
mrsCustomer.Open
End Sub
_______________________________________________________________________________

Вопрос:
Как обновить записи в recordset'е (в смысле сделать повторный запрос
базы данных) не закрывая recordset?
Есть ли какой метод в ADODB.Recordset на повторный запрос данных.
...
Рейтинг: 0 / 0
10.10.2003, 16:59
    #32290256
Shubnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Recordset.Requery
...
Рейтинг: 0 / 0
10.10.2003, 17:41
    #32290311
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Не, непойдёт Recordset.Requery. У меня с текущим Recordset'ом DataGrid связан, так она (DataGrid) после такого не работает с обновлённым Recordset'ом (онже фактически сначала Close, а затем Open). Попробовал Recordset.Resync (он, вроде, не перестраивает таблицу Recordset'та, а обновляет текущую) так ошибки начала писать "Не достаточто сведений ключевого поля для обновления"
...
Рейтинг: 0 / 0
10.10.2003, 20:56
    #32290425
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
После Requery надо заново биндить рекордсет к гриду, стандартная операция и никуда от нее не деться.

Magnus
...
Рейтинг: 0 / 0
11.10.2003, 08:24
    #32290568
Shubnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Resync казалось бы хороший выход, но пока мне кажется глюченый. От ошибки "Не достаточто сведений ключевого поля для обновления" можно избавиться создав любым способом уникальное поле в таблицах участвующих в запросе. Если таблица одна или две, то работает нормально, больше обновляютс я не все поля запроса. Но я пользую GRIDEX 2000, в нём есть метод обновления grid'а перечитывая данные с Recordset'а. Как в стандартном grid'е не знаю. Сейчас обкапываю Resync со всех строн.
...
Рейтинг: 0 / 0
11.10.2003, 14:26
    #32290600
Ivan_81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Да. блин, приходится заново чалить Recordset к таблице.
Плохо что Resync глючит.
...
Рейтинг: 0 / 0
13.10.2003, 18:38
    #32291804
I-AM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
На самом деле Resync не глюзит, просто у это пакетное обнолевление, при котором надо учитывать и другие параметры обновления через Resync.
Я делаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
dim MyBook
.UPADATE
MyBook=iif (.bookmark=- 1  ,  1 , .bookmark) 
.REQUERY
......
.....
.Bookmark=Mybook
...
Рейтинг: 0 / 0
14.10.2003, 08:13
    #32292146
Shubnikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обновить записи в recordset'е?
Да, глючит - термин ошибочный. Скорее тупит. Всё работает как максимум для двух связанных таблиц. Дальше либо обновляется одно поле в запросе, вернее обновляются все, но по старым значениям ключевых полей. А если Recordset построен на сохр.проц., то получить ничего толкового так и не удалось. Не претендую на абсолютную истину.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обновить записи в recordset'е? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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