Непредвиденная ошибка драйвера внешней базы данных 15877
В некоторых приложениях К3 (График заказов, Раскрой и т.д.) старых версий используется механизм BDE. Кроме того, BDE может быть установлен у пользователя для других целей. Иногда DBE провоцирует ошибку (например, при работе отчетов Excel'e, управляемых скриптами). Ниже приведен способ настройки системы для "мирного" существования ADO и BDE.
Итак, противная ошибка 15877 или проблема BDE.
Начиная с версии Windows XP с SP2 появилась проблема доступа к DBF файлам с помощью ADO в присутствии BDE (позволялось только одно соединение к DBF).
Баг такой. При запуске двух любых приложений, пользующихся драйвером DBASE ODBC возникает ошибка 15877 ("Непредвиденная ошибка драйвера внешней базы данных ") и приложение, запущенное вторым, отказывается работать. Хотя они обращаются к разным Dbf-файлам.
Раньше проблема решалась путём “убивания” самого BDE.
How to control whether Access loads the Borland Data Engine (BDE)
SUMMARY
If you want to control when and if the Borland Database Engine (BDE) is used by Microsoft Access, you can do so by changing the value in the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engi nes\Xbase\BDE
NOTE: You may have to manually add this key.
Back to the top
MORE INFORMATION
The following steps show you how to add this registry key and how to set the appropriate value.
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
After you type the setting that you want in Value data, click OK.
11. Quit Registry Editor.
In Microsoft Windows NT or Microsoft Windows 2000
1. Click Start, click Run, and then type regedt32 in the Open box.
2. In Registry Editor, locate the following key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engi nes\Xbase
3. If you see the BDE entry (the BDE entry is of type DWord) under the Xbase key, double-click it, and then go to step 8. If the BDE entry is not under the Xbase key, you must add it. To add the BDE key with its associated DWord value, follow steps 4 through 7:
4. Click the Xbase key.
5. On the Edit menu, click Add Value.
6. In the Value Name box, type BDE.
7. In the Data Type list, click REG_DWORD, and then click OK.
8. In the Data box, type one of the following three values:
• 0 - Use the BDE if it is installed. If not, use the ISAM.
• 1 - Always use the BDE. If it's not installed then fail.
• 2 - Always use the ISAM.
9. Under Radix, click Decimal, and then click OK.
10. Quit Registry Editor.
То есть, с помощью regedit(a) или изменить или вставить:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
значение:
"BDE"=dword:00000002
То есть всегда использовать ISAM
(без каких-либо рихтовок реестра) без проблем (правда если нЭт cdx'ов - с cdx'ами Microsoft.Jet.OLEDB.4.0 ругаецца (правда вменяемо и членораздельно))
P.S. w2k+sp3 bcb6+sp4
Мдя. Строку создавала при помощи кнопки Build
Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite;Extended Properties="DSN=Файлы dBASE;DBQ=D:\;DefaultDir=D:\DOG;DriverId=277;FIL=dBase IV;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=D:\
И источник использовала стандартный Файлы dBASE
Ну и что ты получила при проверке соединения? В этом же диалоге создания строки? Можешь не писать, сам знаю.
Сейчас распишу очередность действий, жди
Добавлено 23.05.07, 07:31
1. Создаем ODBC-источник данных. Для этого жмем кнопку Пуск (в самом левом нижнем углу Виндовс), затем выбираем Настройка->Панель управления->Администрирование, а в появившемся окошке - Источники данных (ODBC).
2. На страничке Пользовательский DSN жмем кнопку Добавить. Выбираем строку Microsoft dBase Driver (*.dbf), жмём Готово.
3. Пишем имя источника данных - например MyTestDataSource, снимаем галку Использовать текущий каталог, жмем кнопку Выбор каталога и выбираем тот, который надо. Жмем ОК. И ещё раз ОК на страничке Пользовательский DSN. Всё. Источник создан.
4. Теперь дважды кликаем по TADOConnection. Строим строку соединения - драйвер Microsoft OLE DB Provider for ODBC Drivers, в комбобоксе Имя источника данных выбираем MyTestDataSource, включаем галку Пустой пароль, выбираем в комбобоксе Начальный каталог свой каталог.
5. Жмем кнопку Проверить подключение, радуемся, получаем готовую строку соединения. Без примочек типа MaxBufferSize=2048;PageTimeout=5; , на них пока можно плюнуть
----------------
Восстанови запись в реестре и, с учётом твоего опыта - никогда не редактируй ЧУЖИЕ ключи, особенно системные
Представляю как баба Валя из Хацапетовки, натужно морща моск и обливаясь по`том, добавляет
XXXXX/\
XXXX//\\___nnґЇ\__(v^:\\
XXXX\_____\\____)=\__o\\\
is rolling on the floor, laughing my a** off
P.S. Не в обиду, но, IMHO, настоящее standalone'вое ПО должно требовать тока одного - скопировать его куда-нить на веник. А дальше оно должно само уже все делать. И, поверьте, это - не голословное суждение, а жизненный опыт.
P.P.S. Хотя. Борманский ADO вообще, и с dbf, в часности, тоже - не панацея.
← →NOD © ( 2007-04-16 13:52 ) [0]
Потерял покой и сон просто. ужас какой-то.
по инету лазил-вроде все пишут что должно работать без проблем.
а у меня так: не могу открыть базу dbf через адо. точнее в конструкторе формы база открывается, все красиво, в гриде данные появляются-никаких ошибок. но когда я запускаю программу то вылетает ошибка "непредвиденная ошибка драйвера внешней базы данных (15877)".
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\;Mode=ReadWrite|Share Deny None;Extended Properties=DBase 5.0;Persist Security Info=False
← →sniknik © ( 2007-04-16 15:56 ) [5]
> Ты считаешь, что этого Data Source=d:\; достаточно?
достаточно. это база а не файл.
> А где DBF?
вот, неявное указание > . Extended Properties=DBase 5.0
тут нормально все, если чего и лишнее то это - Mode=ReadWrite|Share Deny None;, это нужно просто убрать. останется по умолчанию, без взаимо исключений.
> tablename
ADOTable это "враг народа" №1, убей врага! ;о) (в смысле, не используй)
> "непредвиденная ошибка драйвера внешней базы данных (15877)".
внешняя для jet это BDE, он у тебя установлен там где ошибка? запущены другие программы его использующие? если нет установи, да закрой.
и еще, попробуй вместо DBase 5.0 DBase IV (подозрение что 5й поддержан не в полном обьеме, во внутреннем BDE, поэтому без его присутствия и может не работать)
← →Виталий Панасенко © ( 2007-04-16 15:57 ) [6]
CursorLocation глянь.. Может, поможет
← →sniknik © ( 2007-04-16 15:58 ) [7]
nod © (16.04.07 15:48) [4]
и не держи коннект (ADOConnect) в дизайн тайм открытым перед компиляцией. в рантайм открывай рекордсеты сам.
nod © ( 2007-04-16 16:11 ) [8]
сейчас проверю все советы
← →nod © ( 2007-04-16 16:17 ) [9]
кстати если у кого есть какой нить dbf ник попробуйте написать такую прогу, скажите как получилось. может у меня просто с дровами фигня
← →sniknik © ( 2007-04-16 16:22 ) [10]
> какой нить dbf
какой нить не пойдет, нужен именно DBase, с foxpro, клипером, адвантаже, ets. оно не работает. (фокс если старый и без индексов совпадает но на это лучше не расчитывать)
а пробовать смысла нет, не раз и не один пользовали и без проблем.
← →nod © ( 2007-04-16 16:35 ) [11]
хм.. я пытаюсь открыть базу фокспро досовскую. индексов нет вроде.
но не онимаю почему в редакторе формы данные из базы показываются и она открывается?
nod © ( 2007-04-16 17:16 ) [12]
sniknik ©
и еще, попробуй вместо DBase 5.0 DBase IV (подозрение что 5й поддержан не в полном обьеме, во внутреннем BDE, поэтому без его присутствия и может не работать)
NOD © ( 2007-04-16 13:52 ) [0]
Потерял покой и сон просто. ужас какой-то.
по инету лазил-вроде все пишут что должно работать без проблем.
а у меня так: не могу открыть базу dbf через адо. точнее в конструкторе формы база открывается, все красиво, в гриде данные появляются-никаких ошибок. но когда я запускаю программу то вылетает ошибка "непредвиденная ошибка драйвера внешней базы данных (15877)".
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\;Mode=ReadWrite|Share Deny None;Extended Properties=DBase 5.0;Persist Security Info=False
← →sniknik © ( 2007-04-16 15:56 ) [5]
> Ты считаешь, что этого Data Source=d:\; достаточно?
достаточно. это база а не файл.
> А где DBF?
вот, неявное указание > . Extended Properties=DBase 5.0
тут нормально все, если чего и лишнее то это - Mode=ReadWrite|Share Deny None;, это нужно просто убрать. останется по умолчанию, без взаимо исключений.
> tablename
ADOTable это "враг народа" №1, убей врага! ;о) (в смысле, не используй)
> "непредвиденная ошибка драйвера внешней базы данных (15877)".
внешняя для jet это BDE, он у тебя установлен там где ошибка? запущены другие программы его использующие? если нет установи, да закрой.
и еще, попробуй вместо DBase 5.0 DBase IV (подозрение что 5й поддержан не в полном обьеме, во внутреннем BDE, поэтому без его присутствия и может не работать)
← →Виталий Панасенко © ( 2007-04-16 15:57 ) [6]
CursorLocation глянь.. Может, поможет
← →sniknik © ( 2007-04-16 15:58 ) [7]
nod © (16.04.07 15:48) [4]
и не держи коннект (ADOConnect) в дизайн тайм открытым перед компиляцией. в рантайм открывай рекордсеты сам.
nod © ( 2007-04-16 16:11 ) [8]
сейчас проверю все советы
← →nod © ( 2007-04-16 16:17 ) [9]
кстати если у кого есть какой нить dbf ник попробуйте написать такую прогу, скажите как получилось. может у меня просто с дровами фигня
← →sniknik © ( 2007-04-16 16:22 ) [10]
> какой нить dbf
какой нить не пойдет, нужен именно DBase, с foxpro, клипером, адвантаже, ets. оно не работает. (фокс если старый и без индексов совпадает но на это лучше не расчитывать)
а пробовать смысла нет, не раз и не один пользовали и без проблем.
← →nod © ( 2007-04-16 16:35 ) [11]
хм.. я пытаюсь открыть базу фокспро досовскую. индексов нет вроде.
но не онимаю почему в редакторе формы данные из базы показываются и она открывается?
nod © ( 2007-04-16 17:16 ) [12]
sniknik ©
и еще, попробуй вместо DBase 5.0 DBase IV (подозрение что 5й поддержан не в полном обьеме, во внутреннем BDE, поэтому без его присутствия и может не работать)
В некоторых приложениях К3 (График заказов, Раскрой и т.д.) старых версий используется механизм BDE. Кроме того, BDE может быть установлен у пользователя для других целей. Иногда DBE провоцирует ошибку (например, при работе отчетов Excel'e, управляемых скриптами). Ниже приведен способ настройки системы для "мирного" существования ADO и BDE.
Итак, противная ошибка 15877 или проблема BDE.
Начиная с версии Windows XP с SP2 появилась проблема доступа к DBF файлам с помощью ADO в присутствии BDE (позволялось только одно соединение к DBF).
Баг такой. При запуске двух любых приложений, пользующихся драйвером DBASE ODBC возникает ошибка 15877 ("Непредвиденная ошибка драйвера внешней базы данных ") и приложение, запущенное вторым, отказывается работать. Хотя они обращаются к разным Dbf-файлам.
Раньше проблема решалась путём “убивания” самого BDE.
How to control whether Access loads the Borland Data Engine (BDE)
SUMMARY
If you want to control when and if the Borland Database Engine (BDE) is used by Microsoft Access, you can do so by changing the value in the following registry key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engi nes\Xbase\BDE
NOTE: You may have to manually add this key.
Back to the top
MORE INFORMATION
The following steps show you how to add this registry key and how to set the appropriate value.
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
After you type the setting that you want in Value data, click OK.
11. Quit Registry Editor.
In Microsoft Windows NT or Microsoft Windows 2000
1. Click Start, click Run, and then type regedt32 in the Open box.
2. In Registry Editor, locate the following key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engi nes\Xbase
3. If you see the BDE entry (the BDE entry is of type DWord) under the Xbase key, double-click it, and then go to step 8. If the BDE entry is not under the Xbase key, you must add it. To add the BDE key with its associated DWord value, follow steps 4 through 7:
4. Click the Xbase key.
5. On the Edit menu, click Add Value.
6. In the Value Name box, type BDE.
7. In the Data Type list, click REG_DWORD, and then click OK.
8. In the Data box, type one of the following three values:
• 0 - Use the BDE if it is installed. If not, use the ISAM.
• 1 - Always use the BDE. If it's not installed then fail.
• 2 - Always use the ISAM.
9. Under Radix, click Decimal, and then click OK.
10. Quit Registry Editor.
То есть, с помощью regedit(a) или изменить или вставить:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
значение:
"BDE"=dword:00000002
То есть всегда использовать ISAM
Вчера столкнулся с проблеммой не BDE, но искать пришлось везеде. Трудность в том, что дистанционно по телефону. Нашел. Проблемка зовется антивирь Касперского. При сохранении заказа возникала ошибка и заказ не сохранялся. Суть проблеммы в том, что это происходило не всегда. Иногда заказ сохранялся, а иногда нет. При запуске выскаивала ошибка Не установлена текущая запись в наборе данных, но опять же не всегда. Вообщем, то потухнет то погаснет.
Были ли у кого какие проблеммы при работе с антивирусами? если да, расскажите.
Вчера столкнулся с проблеммой не BDE, но искать пришлось везеде. Трудность в том, что дистанционно по телефону. Нашел. Проблемка зовется антивирь Касперского. При сохранении заказа возникала ошибка и заказ не сохранялся. Суть проблеммы в том, что это происходило не всегда. Иногда заказ сохранялся, а иногда нет. При запуске выскаивала ошибка Не установлена текущая запись в наборе данных, но опять же не всегда. Вообщем, то потухнет то погаснет.
Были ли у кого какие проблеммы при работе с антивирусами? если да, расскажите.
с помощью regedit(a) или изменить или вставить:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
значение:
"BDE"=dword:00000002
То есть всегда использовать ISAM
У меня всегда срабатывало.
с помощью regedit(a) или изменить или вставить:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Xbase]
значение:
"BDE"=dword:00000002
То есть всегда использовать ISAM
У меня всегда срабатывало.
Я в этом не силен. Это проблема с инсталяцией системных драверов. Кстати, как пишут, переустановка офиса проблему не решает.
правой клавишей на "мой комп"-"управление"-"общие папки"-"открытые файлы" и завершаем сеанс на всех DBF. и не надо ничего перегружать |
Здесь обсуждают похожие проблемы.
Другой вариант обратиться в офис в Нижний Новгород может помогут советом.
Я в этом не силен. Это проблема с инсталяцией системных драверов. Кстати, как пишут, переустановка офиса проблему не решает.
Здесь обсуждают похожие проблемы.
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
© 2007-2022 PROMEBEL
Читайте также: