|
|
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Всем привет! Можно ли в ADO создать пустой recordset, а потом его заполнять. Проблема такая: у меня база в виде XML-файла. Если он не обнаружен, юзер может создать записи заново. Однако просто в лоб не получается Код: plaintext 1. 2. 3. 4. 5. на AddNew валится - объект закрыт. Как решать подобные проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:35:07 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
r.Fields.Append "val", adChar, 20 r.Fields.Append "name", adChar, 20 //Это поставьте r.open r.AddNew r.Fields("val") = "alex" r.Fields("name") = "rosa" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:38:40 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Большое пасибо! А на С++ чего-то не получается. Код следующий Код: plaintext 1. 2. 3. 4. Открыть не может. Пишет, мол, аргументы неправильного типа или выходят за границы допустимого диапазона и проч. Какие по умолчанию параметры передает VB этому методу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:50:45 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Просто open без connection и всего прочего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:55:26 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Понятно что без коннекта и всего прочего, однако чего ставить в первый и второй параметры. Пустой вариант не катит. :( Чего туда VB, то засовывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:59:44 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
У метода open все параметры опциональны. В VB я заполняю коллекцию полей рекордсета, потом открываю и заполняю поля значениями. В вашем случае видимо: m_pRecset->Open() должно прокатить, хотя в С++ я не спец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:13:36 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Ок. Большое спасибо что помог. Решение такое Код: plaintext 1. Но вот еще один вопрос возник. При добавлении записей, поле id не увеличивается автоматически. Как бы это сделать? Создаю его так: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:19:46 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
При добавлении записей, поле id не увеличивается автоматически. Как бы это сделать? Имхо - никак. ADO это не позволит. Единственный вариант. (Далее в терминах VB): Объявить рекордсет with events некую переменную счетчик на событие MoveComplete повесить проверку на присутствие значения в "id", если нет - то ставить id и увеличивать счетчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:27:46 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Да это от провайдера зависит! Ты же когда закачиваешь рекордсет из БД и добавляешь в него записи, поле то увеличивается! Есть специальной динамическое св-во ISAUTOINCREMENT. Если оно установлено в true, происходит сам понимаешь чего. Остается выяснить, поддерживает ли его XML'ый провайдер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:41:56 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Вот мля! MSDN: The Microsoft OLE DB Persistence Provider exposes no dynamic properties. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:43:30 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
-->> Да это от провайдера зависит! Разумеется ISAUTOINCREMENT зависит от провайдера, но поскольку Ваш рекордсет не подключен ни какому connection'у. Но даже если ISAUTOINCREMENT был true это ничего бы не изменило - id раздает sql сервер, и id поле получило не после добавления записи, а после успешного updat'а на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 13:49:41 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Я думаю, если бы оно было, то все было бы нормально. Т.е. провайдер сам увеличивал значение такого поля. У меня еще вопрос возник. Когда я открываю рекордсет из БД с adOpenStatic,adLockOptimistic у меня почему-то передвижение по записям с помощью Move не работает. Пишет, мол, провайдер не поддерживает закладки?? Если открыть с adLockReadOnly - все ок. В чем трабл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:12:33 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Если BatchOptimistic? База какая? Microsoft OLE DB Persistence Provider или SQL сервер? Да и курсор на сервере или на клиенте? Если нетрудно объясните задачу, может проблемы проще будет решить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:30:16 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
SQL Server 2000. Родной oledb провайдер. Курсор серверный. Задача простая: нужно двигаться по курсору в произвольном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:41:07 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
А в более широком смысле? Получить XML и закинуть его в базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:44:17 |
|
||
|
Пустой рекордсет
|
|||
|---|---|---|---|
|
#18+
Да XML здесь вообще не причем! Это так, удобная дополнительная фитча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:57:39 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32054368&tid=1819935]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 338ms |

| 0 / 0 |
