|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.04.2012, 00:36 | #11 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 64
|
|
28.04.2012, 00:39 | #12 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
32-битный офис не пробовали ставить? И что произойдёт, если выбрать поставщика данных, который исчезает из списка?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
28.04.2012, 00:42 | #13 | |
Пользователь
Регистрация: 16.04.2012
Сообщений: 64
|
Цитата:
«Невозможно найти устанавливаемый ISAM» |
|
28.04.2012, 00:43 | #14 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Я пас .
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
28.04.2012, 00:57 | #15 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 64
|
Нашел решение! Помогло! Если вдруг кому пригодится:
Как только мы создаем UDL файл и запустить его на 64-разрядных ОС, она будет перечислять до всех 64-битных OLE DB, установленных на компьютере. Причина этого проста. При двойном нажатии на UDL файл на 64-битной машине, это будет перечислить только 64-битный OLE DB, и если у нас есть 32 поставщиков Ole DB бит установлен, мы не сможем найти, что в перечисленных список. Создать UDL файл с именем Test.udl по пути C: \. Когда мы создали UDL файл на 64-битной машине и попытаться открыть ее, следующие "C: \ Program Files \ Common Files \ System \ Ole DB \ Oledb32.dll", OpenDSLFile C: \ Test.udl Команда будет вызываться через C: \ WINDOWS \ system32 \ rundll32.exe. Здесь, как и Oledb32.dll rundll32.exe 64 бит и не буду перечислять 32 библиотек. Тогда как для выполнения UDL в котором перечислены вниз 32 библиотек? Мы можем найти 32-битной версии Oledb32.dll по пути: C: \ Program Files (x86) \ Common Files \ System \ Ole DB и 32-битные версии rundll32.exe по пути: C: \ WINDOWS \ SysWOW64. Нам нужно выполнить следующую команду из командной строки или Пуск / Выполнить: C: \ Windows \ syswow64 \ rundll32.exe "C: \ Program Files (x86) \ Common Files \ System \ Ole DB \ Oledb32.dll", OpenDSLFile C: \ Test.udl Проверьте пути rundll32.exe и Oledb32.dll при выполнении этой команды! Здесь у вас есть 32-битный OLE DB. |
28.04.2012, 01:08 | #16 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Всё же я был на верном пути...
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
22.01.2014, 22:28 | #17 |
Новичок
Джуниор
Регистрация: 22.01.2014
Сообщений: 2
|
столкнулся с той же проблемой
Это конечно хорошо, что Евгений_Магистр нашёл как отобразить все 32-битные драйверы в .udl. Но может я что-то не понимаю, конечно, но работать-то внешнее подключение от этого не стало. Суть такова: в Delphi весь список драйверов отображается верно. А когда пытается проверить файл подключения .udl отдельно, он говорит, что нет такого поставщика данных (конечно, ему же даже не виден искомый драйвер Оракл). По описанной выше схеме можно запустить .udl, чтобы он коннектился, используя директорию SysWOW64, но в обычном режиме он же её всё равно не использует, а ищет дрова в system32. Как ему объяснить, чтобы по умолчанию он искал драйвера в другом месте? Аналогично с ODBC в Панели управления. Ссылка по умолчанию указывает на system и там всего 2 драйвера (SQL Server). А если изменить путь на SysWOW64 - то все драйвера видны... |
12.04.2014, 12:57 | #18 |
Новичок
Джуниор
Регистрация: 22.01.2014
Сообщений: 2
|
В общем из Делфи видны как раз все драйвера: и 32 и 64-битные, но т.к. суть .udl - настройка подключения без использования среды Делфи, необходимо, чтобы весь список открывался и при нажатии на udl.
Проблема в том, что на 64-битной системе, когда мы открываем udl файл, он открывается с использованием библиотеки C:\Program Files\Common Files\System\Ole DB\Oledb32.dll (функция OpenDSLFile) с использованием exe-шника C:\WINDOWS\system32\rundll32.exe А нам надо, чтобы открывалась библиотека C:\Program Files (x86)\Common Files\System\Ole DB\Oledb32.dll (функция OpenDSLFile) с использованием exe-шника C:\WINDOWS\SysWOW64\rundll32.exe Одноразово это можно сделать и через командную строку, но я выбрал простой вариант: прицепить к каждому подключению ещё ярлык такого вида (свойство ярлыка "объект"): C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\Oledb32.dll", OpenDSLFile test.udl где test.udl - имя Вашего .udl-файла, который должен лежать в одной папке с данным ярлыком Впоследствии открывать настройку подключения, естественно, только через ярлык, а не через сам udl-файл. Собственно, шёл к этому сам, но последним штрихом, так сказать, стала статья: msdn из которой и нашёл итоговое решение |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при указании utf-8 все символы отображаются квадратиками - в не правильной кодировке | ZvEr_HaCkEr | HTML и CSS | 4 | 18.02.2011 15:37 |
В журнале исправлений в общей книге Excel 2007, не отображаются все изменения | Tanyushaalex | Microsoft Office Excel | 0 | 21.10.2010 08:18 |
QuickRep не все элементы отображаются при просмотре | xxxsas | Общие вопросы C/C++ | 1 | 12.04.2009 08:33 |
В IE7.0 не отображаются некоторые элементы страниц форума, которые нормально отображаются в FireFox3.0. | Taras | HTML и CSS | 10 | 27.09.2008 13:30 |