udav2alex
Дата: 23.11.2006 22:23:10
Хочу создать Recordset, заполнить его данными, а потом данные из Recordset записать в таблицу.
Задача такая:
1. Есть TBL, содержащая набор записей.
2. Каждая запись в TBL формируется на основе одной из записей отдельной таблицы темплейтов + реакция пользователя (ну например, темплейт "Я люблю кататься на <<ср-во передвижения>>", форма-мастер попросит ввести _ср-во передвижения_).
3. Новые записи нужно добавлять в TBL пачками (!), с возможностью отката, ибо одновременно в базе могут сидеть несколько юзеров - они не должны видеть отдельные записи вне пачки. Да и удалять записи для отката не очень хочется...
Т.е. сначала некая форма (типа мастера) задает вопросы читая пачку темплейтов, генерит при этом некую _сущность_ которая содержит будущие записи TBL, а потом, когда ВСЯ пачка записей сформирована и пользователь подтвердил, что правильно ответил на все вопросы, сбрасывает данные в таблицу TBL. Мне кажется, что такой сущностью может быть Recordset.
Подскажите, пожалуйста, как подступиться к этому - где чего почитать, может быть?
Recordset.open имхо не катит, т.к. отстутствует Source. Думаю, что надо создать Recordset, определить его поля, а потом наполнять... Но как это сделать не знаю. Возможно, я ошибаюсь даже с подходом...
Что скажете, господа эксперты?
nibbles
Дата: 23.11.2006 23:08:04
udav2alex |
Что скажете, господа эксперты? |
Хм... по-моему, я мало выпил... пойду еще хряпну
P.S. Recordset с нуля создать можно, заполнить его данными тоже можно, добавить из него данные в другой источник данных - можно, добавлять данные внутри пакетов-батчах - можно, скрыть от других пользователей обновления - можно... и вообще - все можно, если задача сформулирована ясно и должным образом декомпозирована, а вопрошающий не хочет, чтоб "господа эксперты" за него сделали всю работу.
Удачи
Karfaqen
Дата: 23.11.2006 23:17:13
Можно иметь временную таблицу для одного сеанса анкетирования, которую, после удачного завершения сеанса, переписывать в одной транзакции в основную таблицу готовых анкет TBL. А до завершения этого сеанса ваши "мастера" трудятся в пределах этой временной таблицы, по ходу дела заполняя ее вашими вопросами/ответами.
nibbles
Дата: 23.11.2006 23:34:47
показываю... создание НЗ с нуля:
Set rst = New ADODB.Recordset
With rst
.Fields.Append "CustNum", adVarChar, 100
.Fields.Append "CalcNum", adVarChar, 100
.Fields.Append "Email", adVarChar, 100
.Open
.AddNew Array("CustNum", "CalcNum", "Email"), _
Array(Nz(Me.CustNum.Value, ""), Nz(Me.CalcNum.Value, ""), sMailAddress)
.UpdateBatch
End With