Доступ к MS SQL Server на Windows x64

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Landgraf
новенький
Сообщения: 11
Зарегистрирован: 10.06.2013 15:06:36

Доступ к MS SQL Server на Windows x64

Сообщение Landgraf »

Соединение осуществляется через модуль 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
Последний раз редактировалось Landgraf 05.07.2013 14:35:42, всего редактировалось 2 раза.
alexey38
долгожитель
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Сообщение alexey38 »

У Вас программа сама компилится под 32 или 64 бита?
Работа 64 битной DLL из 32 битной программы не поддерживается.
Landgraf
новенький
Сообщения: 11
Зарегистрирован: 10.06.2013 15:06:36

Сообщение Landgraf »

alexey38 писал(а):У Вас программа сама компилится под 32 или 64 бита?
Работа 64 битной DLL из 32 битной программы не поддерживается.

Использую Lazarus-1.0.8 fpc-2.6.2 Win64, компилирую под 64 бита.

У меня есть подобный опыт в подборе DLL для работы с SQLite, XML, iconv - неподходящие DLL либо приводили к ошибке компилятора, либо к требованию MSVCR100.dll, но доставлять ничего не потребовалось.
Аватара пользователя
vada
энтузиаст
Сообщения: 691
Зарегистрирован: 14.02.2006 12:43:17

Сообщение vada »

Может регистрация DLL в реестре слетела?
Для 32 разряда:
regsvr32.exe /s <Имя файла>.dll
Для 64-х должно быть аналогично.
Landgraf
новенький
Сообщения: 11
Зарегистрирован: 10.06.2013 15:06:36

Сообщение Landgraf »

vada писал(а):Может регистрация DLL в реестре слетела?
Для 32 разряда:
regsvr32.exe /s <Имя файла>.dll
Для 64-х должно быть аналогично.


Совет косвенно помог - при попытке зарегистрировать появилось сообщение, что библиотека dblib.dll не подходит для ОС Windows 7 x64.
Я это подозревал с самого начала, теперь уверен.
Но где достать подходящую библиотеку, если все пути ведут на один и тот же сервер?
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

Прикол Microsoft:
  • 64-битные библиотеки нужно класть в System32, но регистрировать из 64-битной консоли.
  • 32-битные библиотеки нужно класть в SysWOW64 и регистрировать из 32-битной консоли.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

С MS Sql Server нормально работают только платные программы насколько я знаю, остальное это неофициальные костыли

Например это http://www.devart.com/sdac/download.html
Landgraf
новенький
Сообщения: 11
Зарегистрирован: 10.06.2013 15:06:36

Сообщение Landgraf »

Vapaamies писал(а):Прикол Microsoft:
  • 64-битные библиотеки нужно класть в System32, но регистрировать из 64-битной консоли.
  • 32-битные библиотеки нужно класть в SysWOW64 и регистрировать из 32-битной консоли.

Замечание дельное, но не помогает - пишет, что файл в System32 не найден, хотя Process Monitor говорит об обратном.
А прикол в том, что 64-битная консоль как раз и находится в System32.

Кто-нибудь может скомпилировать dblib.dll для Windows 7 x64 из этих исходников?
У меня нет C-компилятора и с ним никогда не работал.
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

mingw
Ответить