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

Windows Server 2008 Service Pack 2 Windows Server 2008 Foundation Windows Server 2008 Standard Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Web Edition Windows Server 2008 Enterprise Windows Server 2008 Datacenter Еще…Меньше

Обзор

Данное обновление устраняет проблему, которая была введена в 10 октября 2017 г, обновить. По этой причине приложения, основанные на ядра базы данных Microsoft JET (Microsoft Access 2007 и более ранних версий или приложений сторонних разработчиков) не при создании или открытии XLS-файлов Microsoft Excel. При возникновении неполадки, появляется следующее сообщение об ошибке:

Непредвиденная ошибка драйвера внешней базы данных (1). (Ядро базы данных Microsoft JET)


Для получения дополнительных сведений об уязвимости, разрешенные в октябре 10 обновление, переход к CVE 2017 г. 8718.

Как получить и установить обновление

Каталог Центра обновления Майкрософт

Для получения отдельного пакета для данного обновления перейдите на веб-сайт каталога Центра обновления Майкрософт.
 

Дополнительные сведения


Сведения о файлах

Английская (США) версия данного обновления программного обеспечения устанавливает файлы, атрибуты которых указаны в приведенных ниже таблицах. Дата и время для файлов указаны в формате UTC. Дата и время для файлов на локальном компьютере отображаются в местном времени с вашим текущим смещением летнего времени (DST). Кроме того, при выполнении определенных операций с файлами, даты и время могут изменяться.
 

Сведения о файлах для Windows Server 2008

Примечания

Файлы МАНИФЕСТА (.manifest) и файлы MUM (.mum), которые устанавливаются не указываются.

Получение справки и поддержки данного обновления для системы безопасности

Сведения о файлах

Сведения о хэше файлов

Имя файла

Хэш SHA1

Хэш SHA256

Windows6.0-KB4050795-x86.msu

C30EB7FD37EB66469EA6CF43DB92F5146EE9A8BA

6F37FA0897C3FDBD79341CDDD489FE26AA69426A37E94CEBF67747B5E2B9D7A7

Windows6.0-KB4050795-ia64.msu

3A41E29A0781DF5B37B41C0A7A9AAA76F5C1A018

58753B387587C346BDBA8453A9A37FE9F9EADF676E67273AFE252079B953841C

Windows6.0-KB4050795-x64.msu

22EF2C398A9A94E2508FD41DE7F9EF7AAC00B83C

4373E9F0B914A69E82B0CBFEA1311B72EF4968436A939C4F0A3DFFA2441F5768

Для всех поддерживаемых 32-разрядных версий

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

Msexcl40.dll

4.0.9801.2

339 968

15-Oct-2017

13:31

x86

Для всех поддерживаемых версий на базе ia64

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

Msexcl40.dll

4.0.9801.2

339 968

15-Oct-2017

13:31

x86

Для всех поддерживаемых версий на базе x64

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

Msexcl40.dll

4.0.9801.2

339 968

15-Oct-2017

13:31

x86

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Недавно мне пришлось писать программу на C# для конвертации данных из базы Paradox в другую, более современную. Как я выяснил, есть разные способы подключения к базе данных из C#, например, через Microsoft Jet OLE DB, или через Microsoft Paradox Driver, я выбрал второй способ. Строку подключения можно посмотреть на connectionstrings.com После удачного подключения через Microsoft Paradox Driver я пытался получить данные, но столкнулся с ошибкой «Непредвиденная ошибка драйвера внешней базы данных (11265)«.

При поиске решения проблемы я выяснил несколько важных вещей касательно Paradox в Windows 7 64 bit:

  1. Для 64 разрядной системы нет драйверов для базы Paradox. В этом можно убедиться, зайдя в Панель управления — Администрирование — Источники данных (ODBC) и не увидев там драйверов для Paradox-а. Однако, если зайти в Источники данных (ODBC) через c:\Windows\SysWOW64\odbcad32.exe — то мы сразу увидим там кучу дополнительных драйверов, включая Microsoft Paradox Driver.
    Таким образом, я пришел к 1-му выводу: приложение должно работать в режиме 32 битного приложения чтобы оно увидело драйвера для Paradox-а. Для этого приложение нужно компилировать с флагом 32BIT, либо установить этот флаг на exe файл, например, с помощью .Net Tools.
  2. Нужно быть внимательным при написании строки подключения Microsoft Paradox Driver. В ней обязательно должен обязательно присутствовать пробел после *.db. Без этого пробела программа не сможет найти драйвер.
  3. После подключения к базе через Microsoft Paradox Driver я попытался выполнить запрос к базе и получил ошибку «Непредвиденная ошибка драйвера внешней базы данных (11265)«. После долгих поисков в интернете я выяснил, что это происходит из-за того, что приложение не может создать в корне диска C: файл PDOXUSRS.NET. Напрашивался вывод, что приложение нужно запускать с администраторскими правами, чтобы она смогла писать в корень системного диска. Однако, как выяснилось, это не обязательно. Можно просто в BDE Administrator указать в Configuration\Drivers\Native\Paradox NET DIR другую папку для сохранения файла.
  4. Так же, необходимо, чтобы у пользователя были права на файл c:\Windows\System32\odbc32.dll (спасибо за помощь Владимиру в комментарии ниже)
  5. В строке подключения никаким образом не указать кодировку базы, т.к. у драйвера нет таких опций. Если база в windows-кодировке, драйвер будет ее упорно выдавать как западноевропейскую 1252. Единственное корректное решение, к которому я пришел — это преобразовывать кодировку, например, так:
    out_str = Encoding.GetEncoding(1251).GetString(Encoding.GetEncoding(1252).GetBytes(in_str))
    где in_str — это строка, полученная из базы.

В интернете встречается большое число различных советов. Большинство из них мне не помогли. Те, что я написал, возможно, для кого-то тоже не подойдут. Но возможно, кому-то я все-таки смог помочь.

На чтение 3 мин. Просмотров 214 Опубликовано

Получаете ли вы сообщение об ошибке неожиданная ошибка от внешнего драйвера базы данных при попытке экспортировать документы из Microsoft Office?

Если это так, не паникуйте, так как эту проблему можно решить без проблем, и мы проверим, как решить все проблемы через несколько минут.

Как вы, возможно, знаете, Microsoft сама выпустила два выделенных обновления для Windows 10 (с номерами сборки KB4052233 и KB4052234) для автоматического исправления ошибки «Неожиданная ошибка от драйвера внешней базы данных».

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

Содержание

  1. Как решить «непредвиденную ошибку от внешнего драйвера базы данных» в Windows 10
  2. 1. Вручную удалите исправление KB4041691 или любое другое недавнее обновление системы.
  3. 2. Отключите функцию автоматического обновления

Как решить «непредвиденную ошибку от внешнего драйвера базы данных» в Windows 10

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

Кроме того, вы также должны отключить функцию автоматического обновления, поскольку система Windows может снова применить обновление автоматически, в ситуации, когда первоначальная проблема может появиться снова.

1. Вручную удалите исправление KB4041691 или любое другое недавнее обновление системы.

  1. Сначала перейдите в Безопасный режим (это отключит сторонние приложения и процессы, которые могут заблокировать определенный доступ в файлах последних обновлений), поэтому нажмите Win + R и выполните MSCONFIG ; в следующем окне перейдите на вкладку Boot и выберите Safe mode; перезагрузите ваше устройство.
  2. Теперь нажмите Win + I и в Системных настройках нажмите Обновление и безопасность .
  3. На левой панели нажмите Центр обновления Windows .
  4. Теперь в главном окне нажмите Дополнительные параметры.
  5. Затем выберите Просмотреть историю обновлений .
  6. Список обновлений будет указан там.
  7. Вы можете удалить определенные обновления – найдите запись KB4041691 и удалите ее для устранения проблемы «Неожиданная ошибка от драйвера внешней базы данных».

2. Отключите функцию автоматического обновления

  1. Нажмите горячие клавиши Win + R на клавиатуре.
  2. Внутри поля «Выполнить» введите gpedit.msc и нажмите Enter.
  3. В окне локальной групповой политики перейдите по следующему пути (с левой панели): Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Центр обновления Windows .
  4. Теперь в правой части главного окна дважды щелкните запись Настроить автоматические обновления .
  5. Установите флажок «Включено», чтобы включить эту политику при запросе
  6. Из доступных вариантов выберите второй: уведомить о загрузке и уведомить об установке ’.
  7. Теперь Windows больше не будет применять обновления автоматически. Когда будет доступно обновление, вы получите уведомление и сможете выбрать, устанавливать его или нет.

Таким образом, удаление обновления KB4041691 для Windows 10 поможет вам решить проблему с «непредвиденной ошибкой от внешнего драйвера базы данных».

Если это решение не работает, вы можете дополнительно выбрать запуск сканирования системы: откройте окно cmd с повышенными правами – щелкните правой кнопкой мыши значок «Пуск» Windows и выберите Командная строка (Admin) – и в Окно cmd выполняет sfc/scannow .

Кроме того, вы также можете выбрать восстановление системы: убедитесь, что вы выбрали точку восстановления, в которой не было ошибки «Неожиданная ошибка от драйвера внешней базы данных».

Вы можете использовать поле комментариев ниже, чтобы поделиться своим опытом устранения неполадок с другими пользователями, которые могут столкнуться с той же проблемой.

by Andrew Wafer

Andrew is not just trying to bring you closer to Windows, but he’s truly interested in this platform. He just happens to be passionate about sharing that knowledge… read more


Updated on

Unexpected error from external database driver

XINSTALL BY CLICKING THE DOWNLOAD FILE

Get rid of malfunctioning drivers on your PC

SPONSORED

Drivers can often become corrupt as they can interfere with malfunctioning system files, thus arriving to be installed but not running correctly. To keep your drivers running smoothly, your Windows OS must run even smoother. Get it in perfect shape by following the steps below:

  1. Download Fortect and install it on your PC.
  2. Start the tool’s scanning process to look for corrupt files that are the source of your problem
  3. Right-click on Start Repair so the tool can start the fixing algorithm
  • Fortect has been downloaded by 0 readers this month, rated 4.4 on TrustPilot

Are you getting the ‘Unexpected error from external database driver’ error message while trying to export import your Microsoft Office docs?

If you are, don’t panic as this problem can be fixed without hassle and we will be checking how to address all the problems in a few moments.

As you might know, Microsoft itself released two dedicated Windows 10 updates (with build numbers KB4052233 and KB4052234) for automatically fixing the ‘Unexpected error from external database driver’ bug.

However, it seems that these two updates managed to add more problems than addressing the existing issues which made Microsoft pull the updates down. Shortly, the problems are still there and the updates that should resolve the issues are also down. That’s why you need to fix the malfunction manually as explained below.

How to solve ‘Unexpected error from external database driver’ on Windows 10

Since the problem is related with a recent Windows 10 update, for addressing the problem you will have to manually uninstall the very same update patch.

Additionally, you must also turn off the automatic update feature since the Windows system might apply the update automatically again, situation during which the initial problem might reappear.

1. Manually uninstall the KB4041691 update patch or any other recent system update

  1. First, go to Safe Mode (this will disabled third party apps and processes that might block certain access within recent update files) – so, press Win+R and execute msconfig; from the next window, switch to Boot tab and select Safe mode; reboot your device.safe mode with networking
  2. Now, press Win+I and from System Settings click on Update & security.fix update and security not working windows 10
  3. From the left panel click on Windows Update.
  4. Now, from the main window click on Advanced options.
  5. Next, select View your update history.remove windows 10 update fix unexpected error database driver
  6. A list of update patches will be listed there.
  7. You can choose to uninstall certain updates – find the KB4041691 entry and uninstall it for fixing the ‘Unexpected error from external database driver’ problem.

2. Turn off automatic update feature

  1. Press the Win+R keyboard hotkeys.
  2. Inside the Run box type gpedit.msc and press Enter.
  3. From Local Group Policy window, go to the following path (from the left panel): Computer Configuration – > Administrative Templates – >Windows Components – > Windows Update.
  4. Now, from the right side of the main window double click on the Configure Automatic Updates entry.
  5. Check the Enabled option for enabling this policy when asked.
  6. From the available options choose the second one: ‘notify for download and notify for install’.
  7. Now, Windows will no longer apply updates automatically. When an update will be made available you will receive a notification and you can choose whether to install it or not.

So, removing the KB4041691 Windows 10 update will help you fix the ‘Unexpected error from external database driver’ issue.

If this solution isn’t working, you can additionally choose to initiate a system scan: open an elevated cmd window – right-click on the Windows Start icon and select Command Prompt (Admin) – and in the cmd window execute sfc /scannow.

Moreover, you can also choose to make a System Restore: make sure you choose a restore point where the ‘Unexpected error from external database driver’ error didn’t exist.

You can use the comments field from below for sharing your own troubleshooting experience with other users who might be facing the same problem.

RELATED STORIES TO CHECK OUT:

  • Fix: Driver irql_less_or_not_equal error on Windows 10
  • Fix: “Please uninstall KB3172605 and/or KB3161608 before installing this driver” error
  • Fix: BUGCODE_ID_DRIVER error on Windows 10

Still experiencing troubles? Fix them with this tool:

SPONSORED

Some driver-related issues can be solved faster by using a tailored driver solution. If you’re still having problems with your drivers, simply install OutByte Driver Updater and get it up and running immediately. Thus, let it update all drivers and fix other PC issues in no time!

newsletter icon

Icon Ex Номер ошибки: Ошибка 8961
Название ошибки: Access Error 8961
Описание ошибки: Ошибка 8961: Возникла ошибка в приложении Microsoft Access. Приложение будет закрыто. Приносим извинения за неудобства.
Разработчик: Microsoft Corporation
Программное обеспечение: Microsoft Access
Относится к: Windows XP, Vista, 7, 8, 10, 11

Объяснение «Access Error 8961»

Это наиболее распространенное условие «Access Error 8961», известное как ошибка времени выполнения (ошибка). Когда дело доходит до программного обеспечения, как Microsoft Access, инженеры могут использовать различные инструменты, чтобы попытаться сорвать эти ошибки как можно скорее. Тем не менее, возможно, что иногда ошибки, такие как ошибка 8961, не устранены, даже на этом этапе.

Пользователи Microsoft Access могут столкнуться с ошибкой 8961, вызванной нормальным использованием приложения, которое также может читать как «Access Error 8961». Если происходит «Access Error 8961», разработчикам будет сообщено об этой проблеме, хотя отчеты об ошибках встроены в приложение. Команда программирования может использовать эту информацию для поиска и устранения проблемы (разработка обновления). Следовательно, разработчик будет использовать пакет обновления Microsoft Access для устранения ошибки 8961 и любых других сообщений об ошибках.

В первый раз, когда вы можете столкнуться с ошибкой среды выполнения Microsoft Access обычно с «Access Error 8961» при запуске программы. Причины сбоев обработки можно отличить, классифицируя ошибки 8961 следующим образом:.

Ошибка 8961 Crash — это очень популярная ошибка выполнения ошибки 8961, которая приводит к завершению работы всей программы. Если Microsoft Access не может обработать данный ввод, или он не может получить требуемый вывод, это обычно происходит.

Утечка памяти «Access Error 8961» — ошибка 8961 приводит к постоянной утечке памяти Microsoft Access. Потребление памяти напрямую пропорционально загрузке ЦП. Возможные провокации включают отсутствие девыделения памяти и ссылку на плохой код, такой как бесконечные циклы.

Ошибка 8961 Logic Error — логическая ошибка возникает, когда компьютер генерирует неправильный вывод, даже если пользователь предоставляет правильный ввод. Это происходит, когда исходный код Microsoft Corporation вызывает уязвимость при обработке информации.

Такие проблемы Access Error 8961 обычно вызваны повреждением файла, связанного с Microsoft Access, или, в некоторых случаях, его случайным или намеренным удалением. Основной способ решить эти проблемы вручную — заменить файл Microsoft Corporation новой копией. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам Microsoft Corporation, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.

Распространенные проблемы Access Error 8961

Access Error 8961 Проблемы, связанные с Microsoft Access:

  • «Ошибка программного обеспечения Access Error 8961. «
  • «Access Error 8961 не является приложением Win32.»
  • «Извините, Access Error 8961 столкнулся с проблемой. «
  • «Файл Access Error 8961 не найден.»
  • «Access Error 8961 не найден.»
  • «Ошибка запуска программы: Access Error 8961.»
  • «Access Error 8961 не работает. «
  • «Ошибка Access Error 8961. «
  • «Неверный путь к программе: Access Error 8961. «

Обычно ошибки Access Error 8961 с Microsoft Access возникают во время запуска или завершения работы, в то время как программы, связанные с Access Error 8961, выполняются, или редко во время последовательности обновления ОС. Важно отметить, когда возникают проблемы Access Error 8961, так как это помогает устранять проблемы Microsoft Access (и сообщать в Microsoft Corporation).

Создатели Access Error 8961 Трудности

Заражение вредоносными программами, недопустимые записи реестра Microsoft Access или отсутствующие или поврежденные файлы Access Error 8961 могут создать эти ошибки Access Error 8961.

В первую очередь, проблемы Access Error 8961 создаются:

  • Поврежденная или недопустимая запись реестра Access Error 8961.
  • Вирус или вредоносное ПО, повреждающее Access Error 8961.
  • Access Error 8961 злонамеренно или ошибочно удален другим программным обеспечением (кроме Microsoft Access).
  • Другое приложение, конфликтующее с Access Error 8961 или другими общими ссылками.
  • Неполный или поврежденный Microsoft Access (Access Error 8961) из загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

От:

grigor

Россия

 
Дата:  21.10.03 07:43
Оценка:

Уважаемые коллеги!
Помогите пожалуйста разобраться в следующей проблеме:
Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
Файл прекрасно смотрится Exсel’ем.
Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
далее идет следующий код:
CHAR szQuery[256];
ZeroMemory(szQuery,sizeof(szQuery));
wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
(насколько мне известно) совпадает с именем базы.
Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
строковое сообщение об ошибке имеет вид:
«[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
Что здесь не так?

От:

algol

Россия

about:blank
Дата:  21.10.03 11:29
Оценка:

Здравствуйте, grigor, Вы писали:

G>Уважаемые коллеги!

G>Помогите пожалуйста разобраться в следующей проблеме:
G>Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
G>а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
G>Файл прекрасно смотрится Exсel’ем.
G>Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
G>c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
G>Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
G>далее идет следующий код:
G> CHAR szQuery[256];
G> ZeroMemory(szQuery,sizeof(szQuery));
G> wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
G> retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
G>где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
G>(насколько мне известно) совпадает с именем базы.
G>Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
G>строковое сообщение об ошибке имеет вид:
G>»[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
G>Что здесь не так?

Похоже, что это таблица не dBase, а FoxPro (тип данных I, индексный файл idx). ISAM драйвер dBase может не поддерживать такие файлы. Лучше взять ODBC драйвер Visual FoxPro. При этом запрос изменится на «INDEX ON pk_num TO a1 UNIQUE».

От: Аноним  
Дата:  22.10.03 11:41
Оценка:

Здравствуйте, algol, Вы писали:

A>Здравствуйте, grigor, Вы писали:


G>>Уважаемые коллеги!

G>>Помогите пожалуйста разобраться в следующей проблеме:
G>>Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
G>>а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
G>>Файл прекрасно смотрится Exсel’ем.
G>>Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
G>>c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
G>>Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
G>>далее идет следующий код:
G>> CHAR szQuery[256];
G>> ZeroMemory(szQuery,sizeof(szQuery));
G>> wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
G>> retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
G>>где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
G>>(насколько мне известно) совпадает с именем базы.
G>>Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
G>>строковое сообщение об ошибке имеет вид:
G>>»[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
G>>Что здесь не так?

A>Похоже, что это таблица не dBase, а FoxPro (тип данных I, индексный файл idx). ISAM драйвер dBase может не поддерживать такие файлы. Лучше взять ODBC драйвер Visual FoxPro. При этом запрос изменится на «INDEX ON pk_num TO a1 UNIQUE».

Извините, сам разобрался. Оказывается мой DBF — файл формировался немного некорректно, а именно — в заголовке не заполнялось поле даты последней модификации. После заполнения этого поля инструкция CREATE UNIQUE INDEX a1 ON test (pk_num ASC) срабатывает нормально. Правда формируется индексный файл *.mdx и текстовый *.inf, а не *.idx.

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

ximic86

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

1

26.06.2011, 10:04. Показов 3795. Ответов 10

Метки нет (Все метки)


При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)

Код программы такой

Delphi
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
unit delphiDBF;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB;
 
type
  TForm5 = class(TForm)
    cnDBF: TADOConnection;
    TabDBF: TADOTable;
    GridDBF: TDBGrid;
    dsDBF: TDataSource;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form5: TForm5;
 
implementation
 
{$R *.dfm}
 
procedure TForm5.Button1Click(Sender: TObject);
var
AppFolderPath: string;
begin
// подключаемся к ДБФ и выводим данные в таблицу
AppFolderPath:=copy(ExtractFilePath(Application.ExeName),1,length(ExtractFilePath(Application.ExeName))-1);
 
 
    TabDBF.Active:=false;
    CnDBF.Connected:=false;
 
//    CnDBF.ConnectionString:='Provider=MSDASQL;Password="";Persist Security Info=True;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog='+AppFolderPath;
          CnDBF.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' +AppFolderPath + '";Extended Properties="DBASE IV;";"';
//    CnDBF.DefaultDatabase:=AppFolderPath;
//    cnDBF.LoginPrompt:=false;
          CnDBF.LoginPrompt:=false;
          cnDBF.Mode:=cmReadWrite;
          CnDBF.Connected:=true;
 
    CnDBF.Connected:=true;
// err.dbf находится в папке  AppFolderPath (в данном случае в папке с программой)
    TabDBF.TableName:='err';
    TabDBF.Active:=true;
 
// Подключение выполнено
 
 
end;
 
procedure TForm5.Button2Click(Sender: TObject);
begin
   TabDBF.Append;
   TabDBF.FieldByName('sl_id').Value:=0;
   TabDBF.FieldByName('id_med').Value:=0;
   TabDBF.FieldByName('ter_mu').Value:=0;
   TabDBF.FieldByName('kod_mu').Value:=0;
   TabDBF.FieldByName('kod_err').Value:=0;
   TabDBF.FieldByName('Prim').Value:='новая строка';
   TabDBF.Post;
end;
 
end.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

01.07.2011, 21:51

 [ТС]

3

не помогло….

0

35 / 30 / 5

Регистрация: 11.06.2008

Сообщений: 56

03.07.2011, 00:13

4

Цитата
Сообщение от ximic86
Посмотреть сообщение

не помогло….

Попробуй установить вот этот драйвер:
http://msdn.microsoft.com/en-us/vfoxpro/bb190233
У меня заработало. Это проблема в драйвере была!
Подключай через OLE DB

0

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

03.07.2011, 10:39

 [ТС]

5

подскажите пожалуйста как, драйвер скачал и установил, у меня Windows 7, всё равно выдаёт ошибку

Добавлено через 56 минут
всё получилось, подскажите как мне правильно прописать директорию открываемоего файла, если он например будет не в папке с программой, как то через AppFolderPath вроде

0

Cooler2

35 / 30 / 5

Регистрация: 11.06.2008

Сообщений: 56

03.07.2011, 11:13

6

Прописывать придется явно.
Предположим, что твоя программа находится на диске D:, а получить доступ надо к «База.dbc», тогда так:

Delphi
1
2
ADOConnection1.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;' +
'SourceDB=C:Documents and SettingsSergeyРабочий столдипломный проект1дипломный проектбаза.dbc;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"'

0

ximic86

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

03.07.2011, 17:26

 [ТС]

7

[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку

Delphi
1
2
ADOConnection1.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;' + 
'SourceDB=L:перед уходомabonent_d24016DATABASEabonentcheck.dbf;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"'

вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно

0

35 / 30 / 5

Регистрация: 11.06.2008

Сообщений: 56

03.07.2011, 18:56

8

Цитата
Сообщение от ximic86
Посмотреть сообщение

[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку

ADOConnection1.ConnectionString := ‘Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=»Driver={Microsoft Visual FoxPro Driver};UID=;’ +
‘SourceDB=L:перед уходомabonent_d24016DATABASEabonentcheck.dbf;So urceType=DBC;Exclusive=No;BackgroundFetch=Yes;Coll ate=Machine;Null=Yeseleted=Yes;»‘

вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно

В твоем случае надо вместо ADOConnection писать CnDBF

0

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

03.07.2011, 22:11

 [ТС]

9

всё сдеал, компилятор сработал нормально, как только открываю нужную мне базу, выдаётся ошибка:
операция не допускается, если объект открыт

0

1496 / 1238 / 244

Регистрация: 04.04.2011

Сообщений: 4,356

05.07.2011, 11:42

10

При работе с BDE запомните как отченаш:
Перед запуском программы из среды (F9)
ЗАКРЫТЬ ВСЕ ОТКРЫТЫЕ КОННЕТЫ К БАЗЕ И СООТВЕТСТВЕННО ВСЕ ОТКРЫТЫЕ ДАТАСЕТЫ !!!!!!

Добавлено через 51 секунду
И вообще BDE — это ЗЛО.

0

  

Dmitriy_S

23.03.12 — 12:01

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

пример 1

   ИмяФайла = «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!»);

   КонецПопытки;

   

   Command = Новый COMОбъект(«ADODB.Command»);

   Command.ActiveConnection = Connection;

   Command.CommandText = МойЗапрос;

   Command.CommandType = 1;

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

   

   
   Попытка

       RS.Open(Command);

   Исключение

       Сообщить(ОписаниеОшибки());

       Возврат;

   КонецПопытки;

пример 2

   ИмяФайла = «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!»);

   КонецПопытки;

   

   Command = Новый COMОбъект(«ADODB.Command»);

   Command.ActiveConnection = Connection;

   Command.CommandText = МойЗапрос;

   Command.CommandType = 1;

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

   

   Попытка

       RS = Command.Execute();

   Исключение

       Сообщить(ОписаниеОшибки());

       Возврат;

   КонецПопытки;

Пример 3

   ИмяФайла = «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!»);

   КонецПопытки;

   

   Command = Новый COMОбъект(«ADODB.Command»);

   Command.ActiveConnection = Connection;

   Command.CommandText = МойЗапрос;

   Command.CommandType = 1;

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

   

   Попытка

       RS.Open(МойЗапрос, Connection );

   Исключение

       Сообщить(ОписаниеОшибки());

       Возврат;

   КонецПопытки;

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

  

Dmitriy_S

1 — 23.03.12 — 12:18

Попробую апнуть

  

Deniskind

2 — 23.03.12 — 12:29

Соединение = Новый COMОбъект(«ADODB.Connection»);

   РасположениеБазыДанных = Константы.РасположениеБазыДанныхКомплектация.Получить();

   СтрокаСоединения    = «Provider=Microsoft.Jet.OLEDB.4.0;

   |Jet OLEDB:Database Password=»»»»;

   |Data Source=»+РасположениеБазыДанных+»;  

   |Extended Properties=Paradox 5.x;

   |»;

   Соединение.Open(СтрокаСоединения);    

Вот такая штука работает. Обратите внимание на строку Jet OLEDB:Database Password=»»»»; Может из-за этого?

  

Zubek

3 — 23.03.12 — 12:31

Тут человек говорит мне что ему помогло следующее: «расшаривание» доступа к файлу с:pdox.net

  

Dmitri888

4 — 23.03.12 — 12:33

я читал Paradox через ВК

  

Dmitriy_S

5 — 23.03.12 — 12:35

(3) и даже с этой строчкой не помогает

(4) нет возможности ставить дополнительные компоненты пользователям, которым надо будет каждый день грузить файлы. Но для опыта хотелось бы посмотреть как через ВК это делается.

  

Dmitriy_S

6 — 23.03.12 — 12:36

(3) даже несмотря на то, что это локальный файл?

  

Dmitriy_S

7 — 23.03.12 — 12:39

(3) и даже это не помогло.

  

Deniskind

8 — 23.03.12 — 12:39

Залейте куда-нибудь несущественную дб-шку. Попробую ее у себя открыть, чтобы убедиться, что дело в ваших библиотеках.

  

Dmitri888

9 — 23.03.12 — 12:42

на правах антирекламы ресурса )) : http://infostart.ru/public/14148/

  

Dmitri888

10 — 23.03.12 — 12:44

можно найти на просторах инета и в свободном доступе

  

EasyRider

11 — 23.03.12 — 12:45

(0)У меня вот такие строки есть в одной обработке:

   Соединение = Новый ComОбъект(«ADODB.Connection»);

   СтрокаПодключения=»Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+Лев(ЭлементыФормы.Файл.Значение,3)+»;Extended Properties=Paradox 5.x;»;

   Соединение.Open(СтрокаПодключения);

Rs = Новый ComОбъект(«ADODB.Recordset»);    ИмяФайла=СтрЗаменить(ЭлементыФормы.Файл.Значение,Лев(ЭлементыФормы.Файл.Значение,3),»»);

   Rs.Open(«select * from «+ИмяФайла+»;»,Соединение);

  

Dmitriy_S

12 — 23.03.12 — 12:53

(11) у меня такой способ указан в третьем варианте.

(8) Создал пустой текстовый файл, заменил имя на то с которым работаю — ошибка та же самая выходит.

(9) Там гемморой с внутренней валютой. поищу где-нибудь еще на просторах интернетов.

  

Dmitri888

13 — 23.03.12 — 13:06

мыло пиши — сброшу

  

Dmitriy_S

14 — 23.03.12 — 13:17

martyanov@list.ru

  

Dmitriy_S

15 — 23.03.12 — 13:18

Но все же хотелось бы узнать как же можно заставить 1с читать парадоксовские файлы теми способами, которые везде написаны.

  

Deniskind

16 — 23.03.12 — 13:46

Попробовал ваш код из 3-го примера на своих данных. Полностью рабочий.

Windows XP.

  

Deniskind

17 — 23.03.12 — 13:48

Но, с пустым файлом выдает такое «Непредвиденная ошибка драйвера внешней базы данных (8961)» Видимо, версии ADO разные.

  

Kreont

18 — 23.03.12 — 14:35

У меня так читает (что на ВинХП что на Вин7):

БД = Новый ComObject(«ADODB.Connection»);

Если БД.Open(«Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=»+ПутьБД+»;Dbq=»+ПутьБД+»;CollatingSequence=ASCII»)= 0 Тогда

   Сообщить(«Ошибка….»);

   Возврат;

КонецЕсли;

  

Dmitriy_S

19 — 23.03.12 — 14:48

(16) можно попросить проверить ни чтение этот файл http://ifolder.ru/29474196

(17) я когда создавал пустой файл вьювер мне писал версию 3.

  

Deniskind

20 — 23.03.12 — 15:48

(19) Файл отрывается нормально без ошибок

  

Deniskind

21 — 23.03.12 — 15:56

(20) открывается

версия msjetoledb40.dll 4.0 95020

если что еще BDE стоит idapi32.dll 5.0 122

  

Dmitriy_S

22 — 23.03.12 — 16:46

(21) У себя нашел файл  msjetoledb40.dll версия 4.0.9756. Значит, библиотечка стоит. но вот ошибка… позже домой приеду попробую ни XP эту обработку запустить.

  

Deniskind

23 — 23.03.12 — 16:59

На Win 7 с такой же версией библиотеки как и у вас ваш файл тоже открывается нормально.

  

Deniskind

24 — 23.03.12 — 17:21

Ага! Попалась, которая кусалась! :)

Эксперимент на Win XP без установленного BDE показал вашу же ошибку о неверном формате. После установки BDE все отработало корректно.

Для установки надо найти файл bdeinst.cab, извлечь из него bdeinst.dll и зарегистрировать эту dll в системе с помощью regsrv32.

Понимаю, что, видимо, вам без лишних телодвижений у пользователя не обойтись. Либо этот способ, либо ВК стало быть.

  

Dmitriy_S

25 — 23.03.12 — 23:02

Делюсь как это победил дома я. По совету (24) я искал BDE, но так просто его не нашел. нашел в делфи, установил. запустил обработку — выдал уже другую ошибку([Microsoft][Драйвер ODBC Paradox] Непредвиденная ошибка драйвера внешней базы данных (11265)).

Наткнулся в инете на описание этой ошибки — надо было запускать с под пользователем с административными правами, это несмотря на то, что я администратор на компе. напоминаю ОС — Win7. В общем, после этих плясок, вроде, перебор строк заработал.

зы. Огромное всем спасибо за участие!!!

Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

проблемка с DBF

Доброго всем дня

Возникло затруднение с подключением в файлам dbf:

Код: Выделить всё

Dim con As ADODB.Connection

Dim rs As ADODB.Recordset

Set Conn = New ADODB.Connection

Conn.ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};" & _

                        "DriverID=277;Dbq=c:;Exclusive=No"

Conn.Open

Set rs = New ADODB.Recordset

Set rs = Conn.Execute("select * from AZS.dbf")

Файл С:AZS.dbf

В результате кидает ошибку «Непредвиденная ошибка драйвера внешней базы данных (8961)»

Помогите добрым советом :wink: [/syntax]


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 11:58

попробуй:

Код: Выделить всё
select * from AZS

и проверь наличие такого драйвера в списках драйверов ODBC на своем компе



Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 12:24

попробуй с использованием другого ODBC драйвера, например:

Microsoft Visual FoxPro Driver


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 12:25

BDE нужен лишь для модификации данных в таблицах, для просмотра он не нужен.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 12:39

Konst_One писал(а):попробуй с использованием другого ODBC драйвера, например:
Microsoft Visual FoxPro Driver

Код: Выделить всё

con.ConnectionString = "Driver={Microsoft Visual FoxProDriver};" & _

                       "SourceType=DBF;SourceDb=c:"

con.Open

Ошибка: [Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер,используемый по умолчанию


Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва
  • ICQ

Сообщение Ennor » 05.05.2005 (Чт) 12:41

Используй Jet.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 12:51

Ennor писал(а):Используй Jet.

Код: Выделить всё

con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:;" & _

                       "Extended Properties=dBase 5.0;Persist Security Info=False"

con.Open

Set rs = New ADODB.Recordset

Set rs = con.Execute("select * from AZS")

Все та же непредвиденная ошибка драйвера внешней базы данных (8961) :?:


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 13:17

если в этой табличке нет никаких секретных данных, то выложи ее сюда — посмотрим.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 13:33

Konst_One писал(а):если в этой табличке нет никаких секретных данных, то выложи ее сюда — посмотрим.

Вот

Вложения
AZS.rar
(2.95 Кб) Скачиваний: 58

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 14:05

это файл xBase

обязательно нужен BDE


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 14:37

Konst_One писал(а):это файл xBase
обязательно нужен BDE

Скачал BDE библиотеку и инстальнул,а теперь,извини за ламерство…что делать дальше?


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 14:43

открой TotalCommander и в нем добавь плагин xBaseView 5.0 и открой свою табличку


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 15:08

Konst_One писал(а):открой TotalCommander и в нем добавь плагин xBaseView 5.0 и открой свою табличку

СПАСИБО тебе Konst_One,но вот проблемка еще выскочила-присваиваю гриду рекордсет и…Run-time error ‘7004’. Т.е. у меня нет выхода,кроме как через ADO открывать?


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 15:15

что за грид и как ты рекордсет присваиваешь?

и пришли:

Код: Выделить всё
Debug.Print Err.Number & ": " & Err.Description & ". " & Err.Source

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 15:50

Konst_One писал(а):что за грид и как ты рекордсет присваиваешь?

и пришли:

Код: Выделить всё
Debug.Print Err.Number & ": " & Err.Description & ". " & Err.Source

7004: The rowset is not bookmarkable.. DataGrid


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 15:59

Код: Выделить всё
Set rs=New ADODB.Recordset

Set rs.ActiveConnection=con

rs.CursorLocation=adUseClient

rs.Open "SELECT * FROM AZS", , adOpenStatic, adLockReadOnly, adCmdText

Set DataGrid1.DataSource=rs


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 16:12

От всей души выражаю Konst_One благодарность в оказании помощи и уделении мне внимания. Спасибо :D



Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 0

Недавно мне пришлось писать программу на C# для конвертации данных из базы Paradox в другую, более современную. Как я выяснил, есть разные способы подключения к базе данных из C#, например, через Microsoft Jet OLE DB, или через Microsoft Paradox Driver, я выбрал второй способ. Строку подключения можно посмотреть на connectionstrings.com После удачного подключения через Microsoft Paradox Driver я пытался получить данные, но столкнулся с ошибкой «Непредвиденная ошибка драйвера внешней базы данных (11265)«.

При поиске решения проблемы я выяснил несколько важных вещей касательно Paradox в Windows 7 64 bit:

  1. Для 64 разрядной системы нет драйверов для базы Paradox. В этом можно убедиться, зайдя в Панель управления — Администрирование — Источники данных (ODBC) и не увидев там драйверов для Paradox-а. Однако, если зайти в Источники данных (ODBC) через c:WindowsSysWOW64odbcad32.exe — то мы сразу увидим там кучу дополнительных драйверов, включая Microsoft Paradox Driver.
    Таким образом, я пришел к 1-му выводу: приложение должно работать в режиме 32 битного приложения чтобы оно увидело драйвера для Paradox-а. Для этого приложение нужно компилировать с флагом 32BIT, либо установить этот флаг на exe файл, например, с помощью .Net Tools.
  2. Нужно быть внимательным при написании строки подключения Microsoft Paradox Driver. В ней обязательно должен обязательно присутствовать пробел после *.db. Без этого пробела программа не сможет найти драйвер.
  3. После подключения к базе через Microsoft Paradox Driver я попытался выполнить запрос к базе и получил ошибку «Непредвиденная ошибка драйвера внешней базы данных (11265)«. После долгих поисков в интернете я выяснил, что это происходит из-за того, что приложение не может создать в корне диска C: файл PDOXUSRS.NET. Напрашивался вывод, что приложение нужно запускать с администраторскими правами, чтобы она смогла писать в корень системного диска. Однако, как выяснилось, это не обязательно. Можно просто в BDE Administrator указать в ConfigurationDriversNativeParadox NET DIR другую папку для сохранения файла.
  4. Так же, необходимо, чтобы у пользователя были права на файл c:WindowsSystem32odbc32.dll (спасибо за помощь Владимиру в комментарии ниже)
  5. В строке подключения никаким образом не указать кодировку базы, т.к. у драйвера нет таких опций. Если база в windows-кодировке, драйвер будет ее упорно выдавать как западноевропейскую 1252. Единственное корректное решение, к которому я пришел — это преобразовывать кодировку, например, так:
    out_str = Encoding.GetEncoding(1251).GetString(Encoding.GetEncoding(1252).GetBytes(in_str))
    где in_str — это строка, полученная из базы.

В интернете встречается большое число различных советов. Большинство из них мне не помогли. Те, что я написал, возможно, для кого-то тоже не подойдут. Но возможно, кому-то я все-таки смог помочь.

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Непредвиденная ошибка драйвера внешней базы данных 12034
  • Непредвиденная ошибка драйвера внешней базы данных 11265
  • Непредвиденная ошибка драйвера внешней базы данных 10019
  • Непредвиденная ошибка гта 5
  • Непредвиденная ошибка валидации пушкинская карта

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии