Непредвиденная ошибка драйвера внешней базы данных ошибка

Обновлено: 01.07.2024

В некоторых приложениях К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

Знаю, что как читать не раз уже обсуждалось. и поиском искал, но так ничего и не нашел. Написал несколько вариантов кода - ошибка одна и та же "Произошла исключительная ситуация (Microsoft JET Database Engine): Внешняя таблица не имеет предполагаемый формат."


ИмяФайла = "Users.DB";
СтрокаПодключения = "Data Source=C:\Baza16\;Extended Properties=Paradox 5.x";
Провайдер= "Microsoft.Jet.OLEDB.4.0";
МойЗапрос = "Select * From " + ИмяФайла;

Connection = Новый COMОбъект("ADODB.Connection");
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;

Попытка
Connection.Open();
Исключение
Сообщить("Подключение - bad!");
КонецПопытки;

RS = Новый COMОбъект("ADODB.Recordset");


Попытка
RS.Open(Command);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;


ИмяФайла = "Users.DB";
СтрокаПодключения = "Data Source=C:\Baza16\;Extended Properties=Paradox 5.x";
Провайдер= "Microsoft.Jet.OLEDB.4.0";
МойЗапрос = "Select * From " + ИмяФайла;

Connection = Новый COMОбъект("ADODB.Connection");
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;

Попытка
Connection.Open();
Исключение
Сообщить("Подключение - bad!");
КонецПопытки;

RS = Новый COMОбъект("ADODB.Recordset");

Попытка
RS = Command.Execute();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

ИмяФайла = "Users.DB";
СтрокаПодключения = "Data Source=C:\Baza16\;Extended Properties=Paradox 5.x";
Провайдер= "Microsoft.Jet.OLEDB.4.0";
МойЗапрос = "Select * From " + ИмяФайла;

Connection = Новый COMОбъект("ADODB.Connection");
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;

Попытка
Connection.Open();
Исключение
Сообщить("Подключение - bad!");
КонецПопытки;

RS = Новый COMОбъект("ADODB.Recordset");

Попытка
RS.Open(МойЗапрос, Connection );
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

Операционка Win7 64. Может какую-то библиотеку надо или сам файл кривой? как выяснить что файл кривой? Программа Paradox Viewer 1.98 показывает версия файла 5.0. Данные из файла тоже отображаются. Впервые столкнулся с этим форматом. Знающие люди. не проходите мимо, пожалуйста!

В некоторых приложениях К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

С момента обновления Windows от 10 октября драйверы ODBC Excel перестали работать. При попытке прочитать файл мы получаем следующую ошибку:

"Unexpected error from external database driver (1)"

Мы открываем файлы Excel в Delphi, используя соединение ADO со следующей строкой подключения:

Я могу заставить его работать, переключившись на Microsoft.ACE.OLEDB.12.0, но для этого всем нашим клиентам придется установить распространяемый компонент Microsoft Access Database Engine на все компьютеры, на которых они используют наше программное обеспечение.

Есть ли у кого-нибудь другое решение или обходной путь? Заранее спасибо.

Я настраиваю приложение базы данных, чтобы быть агностиком базы данных, и при тестировании с postgresql я получаю стандартную ошибку dsn: [IM002] [Microsoft][ODBC Driver Manager] имя источника данных не найдено Обычно я использую SQL server и MySQL, поэтому я новичок в postgres, я попробовал.

Вот мой код, который находится в начале метода преобразования файла .xls в файл. csv. sourceFile=C:\\Users\\myUser\\Desktop\\Folder\\myFile.xls; string strConn = Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + sourceFile + ;Extended Properties=\Excel 8.0;HDR=No;IMEX=1\; OleDbConnection conn = new.

На клиентской машине я деинсталлировал KB4041681 (Windows 7), который поставляется с последним патчем Microsoft. На моей машине я деинсталлировал KB4041676 (Windows 10). После этого Microsoft.Jet.OLEDB.4.0 теперь работает.

Я надеюсь, что Microsoft скоро исправит эту ошибку.

Есть одно решение. Замените "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1" на Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; После этого изменения вам придется установить драйвер системы Office 2007: Компоненты подключения к данным из link на компьютере клиента.

В ArcGIS Desktop 10.5.1 By ESRI (самая популярная программа для географической обработки) Не удалось открыть файлы excels 2003 и .mdb.

Временное решение: удалите KB4041693, KB4041687 в windows 8.1 (возможно, для w10).

В microsoft changelog обоих путей что-то говорится о "updates [. ] and security updates for microsoft jet". После удаления и перезапуска все программное обеспечение снова становится нормальным.

эта проблема была введена в 10-oct-2017. На форумах microsoft сообщалось об этой проблеме (kb4041693 должен "fix", но все еще не работает). Может быть, через несколько недель они решат (должным образом) эту проблему.

У меня была та же проблема. Изменено Excel 2007 в Excel пунктах назначения. Это сработало. Это то же самое, что изменить поставщика=Microsoft.ACE.OLEDB.12.0.

ВОТ решение. я нашел его на другом форуме и отлично работаю для меня. это будет работать 100%

Как упоминалось в следующем:

KB4041681 устанавливает версию 4.0.9801.1 из msexcl40.dll.

Найти предыдущую версию (4.0.9801.0) msexcl40.dll

Поместите в другой каталог. Они предлагают каталог приложений, но поскольку на следующем шаге вы измените реестр, чтобы указать на эту более старую версию, он, вероятно, может пойти куда угодно.

Обновите раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\win32, чтобы указать местоположение с шага 2.

Для подключения к базе данных 64 bit (Oracle / DB2 / Postgresql/ SQL Server) от 32-битного программного обеспечения через ODBC, нужен ли мне 32-битный клиент базы данных или достаточно просто 32-битного драйвера ODBC. В качестве примера из Oracle, когда я устанавливаю сервер Oracle, 32-битный.

Могу ли я установить как драйвер ODBC 13, так и драйвер ODBC 11 на одном сервере? Мне нужно получить доступ к базе данных Microsoft SQL 2008 и базе данных Microsoft SQL 2016. Для первого требуется драйвер ODBC 11. Второй требует ODBC драйвера 13. Будут ли они независимо использоваться системой.

Если вы работаете с пакетом SSIS, пожалуйста, измените версию листа Excel с 2003 на 2007 в источнике Excel или Excel destination.Generally эта проблема связана с версией excel.

Для меня это сработало, выполнив следующие шаги:

ps.: У нас есть Windows Server 2008R2

После этого я снова запустил задание SQL, и оно сработало нормально.

Удалите эти обновления(в соответствии с вашим OS), и ваш код начнет работать нормально

  • KB4041681 - Windows 7 SP1 и Windows Server 2008 R2 SP1
  • KB4041690 -Windows Сервер 2012
  • KB4041693 - Windows 8.1 и Windows Server 2012 R2
  • KB4041678 - Для меня это было проблемой

Эта проблема была вызвана недавним обновлением Microsoft Office. на данный момент нет альтернативных решений.

Похожие вопросы:

Я хочу соединить MS Access с MySQL. Я установил Xampp для MySQL, а теперь установил драйвер ODBC 5.3. Я перешел к источникам данных и нажал на System-DSN, чтобы добавить драйвер MySQL ODBC 5.3 (как.

Есть ли способ подключиться через ADO с локальной машины Windows к удаленной базе данных MySQL без установки драйвера MySQL ODBC? Я пытаюсь подключиться из файла Excel, и когда у меня установлен.

Я хочу реализовать пользовательский драйвер odbc, который подключается к приложению источника данных, написанному на java. Какой язык лучше всего подходит для реализации пользовательского драйвера.

Я настраиваю приложение базы данных, чтобы быть агностиком базы данных, и при тестировании с postgresql я получаю стандартную ошибку dsn: [IM002] [Microsoft][ODBC Driver Manager] имя источника.

Вот мой код, который находится в начале метода преобразования файла .xls в файл. csv. sourceFile=C:\\Users\\myUser\\Desktop\\Folder\\myFile.xls; string strConn =.

Для подключения к базе данных 64 bit (Oracle / DB2 / Postgresql/ SQL Server) от 32-битного программного обеспечения через ODBC, нужен ли мне 32-битный клиент базы данных или достаточно просто.

Могу ли я установить как драйвер ODBC 13, так и драйвер ODBC 11 на одном сервере? Мне нужно получить доступ к базе данных Microsoft SQL 2008 и базе данных Microsoft SQL 2016. Для первого требуется.

Моя система имеет как 32-разрядные, так и 64-bit красное смещение установленных драйверов ODBC. Он отображается в источниках данных ODBC на вкладке System DSN . Однако на вкладке драйверы.

Я не могу подключиться к базе данных kdb+ в Power BI через драйвер qodbc3 ODBC. После выбора Get Data -> Other -> ODBC и выбора подключения драйвера qodbc, которое, как я знаю, работает.

Я пытаюсь подключить Snowflake к Tableau Online, мой вопрос может показаться глупым, но я действительно не знаю, как это решить. Инструкции приведены здесь , но я борюсь с самым первым шагом.

Читайте также: