Разрабатываю клиент-серверные приложения. В качестве БД использую SQL сервер. Информацию в БД изменяю и заношу при помощи хранимых процедур.
Принцип этого механизма: сначала заполняю таблицу в клиентском приложении данными из БД; выполняю процедуру модификации (добавления, удаления, редактирования), передавая хранимой процедуре на сервере значения из клиентского приложения; для отображения корректной информации в таблице клиентского приложения, заново заполняю таблицу всеми записями из БД.
Получается, что для одной модификации на стороне сервера, делаю два обновления таблицы на стороне клиента, что занимает время и ресурсы.
Пытаюсь сделать безрезультатно такой механизм:
1) создать "отвязный" рекордсет (не подключенный к БД)
- Код: Выделить всё
'Отвязанный рекордсет
Set rs = New ADODB.Recordset
rs.Fields.Append "№", adInteger
rs.Fields.Append "Название фильма", adVarChar, 100
rs.Fields.Append "Актеры", adVarChar, 250
rs.Fields.Append "Жанр", adVarChar, 50
rs.Fields.Append "Примечание", adVarChar, 50
rs.Fields.Append "Отзыв", adVarChar, 50
rs.Fields.Append "FilmID", adInteger
'--------------
'???Заполнение отвязного рекордсета данными из БД???
'--------------
rs.Open
2) заполнить им таблицу в клиентском приложении;
3) после вызова процедуры добавления на сервере дополнить отвязный рекордсет новой информацией
- Код: Выделить всё
frmADO.rs.AddNew
frmADO.rs!№ = Text1
frmADO.rs![Название фильма] = Text2
frmADO.rs!Актеры = Text3
frmADO.rs!Жанр = Text4
frmADO.rs!Примечание = Text5
frmADO.rs!Отзыв = Text6
frmADO.rs! FilmID = “значение идентификатора, возвратимое сервером”
4) соответственно, после вызова процедуры модификации на сервере изменить отвязный рекордсет новой информацией
- Код: Выделить всё
frmADO.rs!№ = Text1
frmADO.rs![Название фильма] = Text2
frmADO.rs!Актеры = Text3
frmADO.rs!Жанр = Text4
frmADO.rs!Примечание = Text5
frmADO.rs!Отзыв = Text6
При таком механизме обновления данные из БД берутся только один раз, дальнейшие изменения будут сделаны путём хранимых процедур без постоянного обновления клиентского приложения из БД.
А теперь, собственно вопрос. Как в “отвязный” рекордсет поместить данные из БД, либо сделать рекордсет, подключённый к БД “отвязным”?
Прилагаю пример, толька в качестве БД в нём применяю Access/