Доступ к MS SQL Server на Windows x64
Модератор: Модераторы
Доступ к MS SQL Server на Windows x64
Соединение осуществляется через модуль mssqlconn.
Библиотека dblib.dll (x64), через которую работает модуль, отчего-то ищет файл MSVCR100.dll в папке C:\Windows\System32,
а расположена эта библиотека в c:\Windows\SysWOW64 (где ей и положено быть на Windows 7 x64).
Копирование файла MSVCR100.dll из C:\Windows\System32 в c:\Windows\SysWOW64 не помогает, видимо, требуется перенос ещё каких-то библиотек.
Если MSVCR100.dll имеется в c:\Windows\SysWOW64, значит ничего вроде "Microsoft Visual C++ Redistributable" устанавливать не нужно.
Считаю, что проблема в неправильном пути. Нужна библиотека dblib.dll, лучше ориентированная на работу с Windows 7 x64.
Где взять такую?
Использую Lazarus-1.0.8 fpc-2.6.2 Win64
Библиотека dblib.dll (x64), через которую работает модуль, отчего-то ищет файл MSVCR100.dll в папке C:\Windows\System32,
а расположена эта библиотека в c:\Windows\SysWOW64 (где ей и положено быть на Windows 7 x64).
Копирование файла MSVCR100.dll из C:\Windows\System32 в c:\Windows\SysWOW64 не помогает, видимо, требуется перенос ещё каких-то библиотек.
Если MSVCR100.dll имеется в c:\Windows\SysWOW64, значит ничего вроде "Microsoft Visual C++ Redistributable" устанавливать не нужно.
Считаю, что проблема в неправильном пути. Нужна библиотека dblib.dll, лучше ориентированная на работу с Windows 7 x64.
Где взять такую?
Использую Lazarus-1.0.8 fpc-2.6.2 Win64
Последний раз редактировалось Landgraf 05.07.2013 14:35:42, всего редактировалось 2 раза.
У Вас программа сама компилится под 32 или 64 бита?
Работа 64 битной DLL из 32 битной программы не поддерживается.
Работа 64 битной DLL из 32 битной программы не поддерживается.
alexey38 писал(а):У Вас программа сама компилится под 32 или 64 бита?
Работа 64 битной DLL из 32 битной программы не поддерживается.
Использую Lazarus-1.0.8 fpc-2.6.2 Win64, компилирую под 64 бита.
У меня есть подобный опыт в подборе DLL для работы с SQLite, XML, iconv - неподходящие DLL либо приводили к ошибке компилятора, либо к требованию MSVCR100.dll, но доставлять ничего не потребовалось.
Может регистрация DLL в реестре слетела?
Для 32 разряда:
regsvr32.exe /s <Имя файла>.dll
Для 64-х должно быть аналогично.
Для 32 разряда:
regsvr32.exe /s <Имя файла>.dll
Для 64-х должно быть аналогично.
vada писал(а):Может регистрация DLL в реестре слетела?
Для 32 разряда:
regsvr32.exe /s <Имя файла>.dll
Для 64-х должно быть аналогично.
Совет косвенно помог - при попытке зарегистрировать появилось сообщение, что библиотека dblib.dll не подходит для ОС Windows 7 x64.
Я это подозревал с самого начала, теперь уверен.
Но где достать подходящую библиотеку, если все пути ведут на один и тот же сервер?
- Vapaamies
- постоялец
- Сообщения: 292
- Зарегистрирован: 24.07.2012 22:37:59
- Откуда: Санкт-Петербург
- Контактная информация:
Прикол Microsoft:
- 64-битные библиотеки нужно класть в System32, но регистрировать из 64-битной консоли.
- 32-битные библиотеки нужно класть в SysWOW64 и регистрировать из 32-битной консоли.
С MS Sql Server нормально работают только платные программы насколько я знаю, остальное это неофициальные костыли
Например это http://www.devart.com/sdac/download.html
Например это http://www.devart.com/sdac/download.html
Vapaamies писал(а):Прикол Microsoft:
- 64-битные библиотеки нужно класть в System32, но регистрировать из 64-битной консоли.
- 32-битные библиотеки нужно класть в SysWOW64 и регистрировать из 32-битной консоли.
Замечание дельное, но не помогает - пишет, что файл в System32 не найден, хотя Process Monitor говорит об обратном.
А прикол в том, что 64-битная консоль как раз и находится в System32.
Кто-нибудь может скомпилировать dblib.dll для Windows 7 x64 из этих исходников?
У меня нет C-компилятора и с ним никогда не работал.
