|
Проблемы с формированием dbf файла на Win98
#32204209
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
|
|
|
Мой опыт:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132.
Работа в Microsoft с различными источниками данных.
====================================================
DB файлы - разные версии Paradox, DBF файлы - foxpro2. 6 dos
Среда: Win2K ( или Win98SE + MsJetSP3 ) + MDAC2. 6 (MDAC2. 7 ) + MsOffice2K+SP1+SP2
Если BDE, то BDE5. 1
1 . Если стоит BDE ( Внимание! БДЕ не деинсталируется )
-----------------------------------------------------
1 . 1 При попытке привязки внешних баз через меню Аксес :
DB файлов - Paradox (db):
успешно пишет и читает в разделяемом режиме
- ODBC :
сообщение "Не допускается использование ODBC для импорта , экспорта или присоединенния таблицы из внешнеей базы данных Microsoft Jet или базы данных ISAM"
DBF файлов - DBaseIV: устанавливает из меню Аксеса связь с отказом от индексов
но 1 ) - только в монопольном доступе, при разделяемом сообщение
"Блокировка таблицы Kart невозможна;она используется пользователем '(нет данных)' на машине '(нет данных)'"
и 2 ) - да она и ВСЕ-РАВНО НЕ РАБОТАЕТ при попытке открыть привязанную таблицу
в Аксес ( "Индекс не найден" )
- ODBC :
Нужно обязательно для записи задать ключевые поля!
при использовании файлового DSN :
"Зарезервированная ошибка (-7778 );.Сообщение для данной ошибки отсутствует"
при использовании системного(пользовательского) DSN (причем его имя может совпадать с именем файлового DSN) :
- ВСЕ ОК и чтение и запись !
1 . 1 . 2 При попытке привязки из программы ( в общем почти как и через меню Аксес)
DB файлов - Paradox (db) ( "Paradox 3 .X;HDR=NO;IMEX= 2 ;DATABASE=" ) :
успешно пишет и читает в разделяемом режиме , Но очень медленно!
- ODBC :
сообщение "Не допускается использование ODBC для импорта , экспорта или присоединенния таблицы из внешнеей базы данных Microsoft Jet или базы данных ISAM"
DBF файлов - DBaseIV ISAM: при некоторых таблицах только монопольный доступ и чтение и запись
и ( не разобрался в индексах дело или еще в чем ),
при некоторых таблицах при разделяемом вообще не работает: "Индекс не найден"
а при других и чтение и запись в разделяемом допускает!!!
замечание: - индексы DTOC(поле, 1 ) следует заменить на DTOS(поле) ; кроме того, обязательно рядом с DBF файлом
должен быть его CDX, иначе при привязке - 'индекс не найден'
DBF файлов - ODBC(через пользовательский или системный DSN возможно ,
через файловый StrCnn = "ODBC;DSN=HBI_EKSP;" - "Runtime error 3146 ODBC ошибка вызова",
а без DSN - "невозможно найти устанавливаемый ISAM" ):
непосредственно при привязке невозможно установить ключевое поле и ,
как следствие - невозможно обеспечить запись данных - ТОЛЬКО ЧТЕНИЕ!
замечание: уникальный ключ следует устанавливать после привязки командой
CREATE UNIQUE INDEX <Имя ключа> ON <Имя таблицы> (<имя поля1>,<имя поля2>,...)
Тогда становится возможной и ЗАПИСЬ !
Внимание! На каждый привязывемый каталог нужно свой DSN иметь
' Замечание по многопользовательской конкурентной работе :
' Внимание!
' При "Connection: dBase IV;HDR=NO;IMEX=2;DATABASE="
' Конкурент может ЗАПРЕТИТЬ обработку dbf таблицы только открыв ее в EXCLUSIVE режиме!
' При добавлении( результаты добаления и,кстати, модификации проявляются в любом случае
' не ранее, чем после Rs.close ) если эта таблица заблокирована в fpd26(vfp60,...)
' перед этим добавлением командой flock(), то добавление все-равно проходит
' успешно, а кокурентному foxpro приложению, чтобы его увидеть бесполезно
' делать unlock,flush, двигать указатель - нужно вновь переоткрыть таблицу в shared режиме.
' При модификации записи блокировка конкурентом flock(),rlock() тоже не спасает от модификации,
' результаты конкуренту видны уже при перемещении указателя или обновлении browse окна.
' При "Connection: ODBC;DSN=pConv/s,Microsoft Visual FoxPro Driver;Description=Текущий Журнал Событий на проходных;SourceType=DBF;Exclusive=No;" & _
' "BackgroundFetch=Yes;Collate=Machine;Null=No;Deleted=Yes;SourceDB="
' Здесь вроде все OK!Только тормоза!
' При блокировке rlock(),flock() конкурентом при любой MADO на Rs.Update будет exception :
' "ODBC - Ошибка обновления присоединенной(связанной) таблицы <имя таблицы>"
' видны новые или модифицированные записи конкуренту уже при Rs.Update
1 . 2 При прямом коннекте из программы без привязки через Аксес :
DSN LESS Connection :
DB файлы :
Успешно все (см пробел!)
Conn.Open "Driver={Microsoft Paradox Driver (*.db )};" & _
"DriverID=538 ;" & _
"Fil=Paradox 5 .X;" & _
"DefaultDir=c:\dbpath\;" & _
"Dbq=c:\dbpath\;" & _
"CollatingSequence=ASCII;"
DBF файлы:
не при любых индексах в DBF успешно (так же как и при привязке):
Conn.Open "Driver={Microsoft dBASE Driver (*.dbf)};" & _
"DriverID=277 ;" & _
"Dbq=\somepath;"
Примечание: Задайте имя файла в запросе SQL. Например:
Rs.Open "Select * From user.dbf" , Conn, , ,adCmdText
Резюме по использованию коннекта в программе при BDE:
----------------------------------------------------
DB - driver ISAM Paradox (db):
DBF- ODBC(только чтение);
или не при любых индексах привязка через ISAM dBaseIV,
что при этих нелюбых индексах для монопольного доступа позволяет
и читать и писать
XLS - привязка к Аксес через "Excel 5 . 0 ;HDR=YES;IMEX= 2 ;DATABASE=C:\Dvlp\ 1 \остатки.xls" через ADOX
при использовании ODBC: "Не допускается использование ODBC для импорта , экспорта или присоединенния таблицы из внешнеей базы данных Microsoft Jet или базы данных ISAM"
Резюме по использованию коннекта (привязки) из меню Access при BDE:
------------------------------------------------------------------
DB - driver ISAM Paradox (db):
DBF- ODBC и чтение и запись при выбранных ключевых полях
2 . Если не стоит BDE
--------------------
2 . 1 При попытке привязки внешних баз через меню Аксес :
DB файлы - или для некоторых версий DB "Внешняя таблица не имеет предполагаемый формат"
или для других некоторых версий только для монопольного ВСЕ OK и чтение и запись !
DBF - как и при BDE,
с тем отличием, что при привязке из программы при dBaseIV (DAO,ADOX)
и разделяемый доступ на чтение и запись возможен!
2 . 2 При прямом коннекте из программы без привязки через Аксес :
DSN LESS Connection :
DB файлы - или для некоторых версий DB "Внешняя таблица не имеет предполагаемый формат"
или для других некоторых версий только для монопольного ВСЕ OK и чтение и запись !
DBF - работает и DBaseIV и ODBC( ODBC из программы запись только при монопольном)
|
|
|