Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! У меня такая проблема. Мне надо добавлять данные в *.dbf файл с помощью VB. Нацарапал такой код: Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\;" conn.CursorLocation = adUseClient rs.Open "SELECT * FROM 1.dbf ", conn, adOpenRecordset, adLockBatchOptimistic For i = 1 To 10000 rs.AddNew rs.Fields(0) = "Иванов" rs.Fields(1) = 123456 rs.Fields(2) = Now rs.Fields(3) = i rs.Fields(4) = 1 rs.Fields(5) = 1 rs.Fields(6) = 0 rs.Update Set Me.DataGrid1.DataSource = rs В таблице DataGrid1 добавленные записи присутствуют, а в 1.dbf - нет. Что я не сделал??? Помогите плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2010, 18:35 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
novtoxa, набор записей (recordset) необходимо обновить, т.е. выполнить Update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 12:06 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
novtoxa, прошу прощения: не заметил, что Вы выполняете обновление. Тогда поробуйте выполнить команду SQL, содержащую инструкцию UPDATE. По опыту могу сказать, что многое зависит от поставщика данных: не знаю, как с таблицами DBF, но, когда я работал из VBA с таблицами IB (FB), приходилось поступать именно так - обновлять данные с помощью Command. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 12:20 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
Тогда поробуйте выполнить команду SQL, содержащую инструкцию UPDATE novtoxa, поправлюсь: конечно, INSERT, а не UPDATE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 15:56 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
novtoxa, вот, наваял в Екселе. Предварительно сделал файл 1.dbf из трёх полей. Новая запись добавляется, всё нормально. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 16:31 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
novtoxaconn.CursorLocation = adUseClient попробуйте серверный курсор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 18:21 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
Shocker.Pronovtoxaconn.CursorLocation = adUseClient попробуйте серверный курсор +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:01 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
novtoxarsOpen "SELECT * FROM 1.dbf ", conn, adOpenRecordset, adLockBatchOptimistic а, дошло, в чем дело, не сразу заметил. Если вы используете BatchOptimistic - то вы должны в конце закончить Batch (выполнить BatchUpdate, если не ошибаюсь), а иначе, зачем вы используете BatchOptimistic? используйте adLockOptimistic - данные в файле будут обновляться сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:17 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
В таких случаях, как я понял, нужно перебирать все возможные варианты, действуя методом проб и ошибок: пробовать разных поставщиков, разные библиотеки доступа, менять типы курсора и т.д. и т.п., последовательно приближаясь к оптимальному варианту. Ну или где-нить найти готовый ответ ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:17 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
vlthВ таких случаях, как я понял, нужно перебирать все возможные варианты, действуя методом проб и ошибок: пробовать разных поставщиков, разные библиотеки доступа, менять типы курсора и т.д. и т.п., последовательно приближаясь к оптимальному варианту. Ну или где-нить найти готовый ответ ))) Не, здесь просто ошибка использования блокировки, указанная мной выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:19 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЕсли вы используете BatchOptimistic - то вы должны в конце закончить Batch (выполнить BatchUpdate, если не ошибаюсь) Да, я тоже на BatchOptimistic обратил внимание - код-то не предусматривает пакетного обновления. Только про выполнение BatchUpdate в конце не подумал. Кстати, правильно наоборот - UpdateBatch . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:26 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
vlthДа, я тоже на BatchOptimistic обратил внимание - код-то не предусматривает пакетного обновления. Только про выполнение BatchUpdate в конце не подумал. Кстати, правильно наоборот - UpdateBatch . Я когда-то очень давно (еще во времена ADO2.5) пытался работать с пакетным обновлением с файлами MDB из VB6. И нифига у меня не вышло - я плюнул и отказался от пакетного обновления. Какие-то совершенно немыслимые глюки возникали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:30 |
|
||
|
Добавить данные в *.dbf файл с помощью VB
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЯ когда-то очень давно... Да, я тоже в своё время (правда не так давно - уже 2.8 была) попробовал и... тоже ничего не получилось. И вот я сейчас подумал: может, я тогда использовал Update вместо UpdateBatch? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:42 |
|
||
|
|

start [/forum/moderation_log.php?user_name=NessO]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 494ms |
| total: | 628ms |

| 0 / 0 |
