У меня сервер Postgres на 64-bit Windows 7 (Строка версии PostgreSQL 9.1.3, compiled by Visual C++ build 1500, 64-bit )
А разработка приложения на С++ идет в 32-bit Windows XP
Так вот я не могу скомпилить приложение с++ с оригинальными длл с сервера (я про libpq.dll и другие длл которые он требует)
А когда скачал самую последнюю libpq.dll для 32-bit windows то все прошло нормально
У меня три вопроса
1) правильно ли компилить все с libpq.dll для той винды на которой идет разработка (у меня 32-bit винда мне нужны длл под 32-bit постгрес, не смотря на то что сервер 64-bit)
2) на клиентах надо ставить длл уже в зависимости от того 32 или 64 битные виндовз на них ? или 32-bit длл будут работать и в 64-bit windows ?
3) И по libpq.dll есть где то место на официальном сайте где можно скопировать все фалы постгрес для работы с C++ ? сейчас чтобы получить нужные длл мне пришлось установить дистрибутив постгреса
Всё нижесказанное моё IMHO1)
Всё нижесказанное моё IMHO
1) Если у вас среда разработки и КОМПИЛЯТОР 64-bit и при этом компилятор и среда разработки ТОЧНО настроены на создание 64-bit приложений, вам нужен libpq.dll в версии 64-bit. Если вы на 64-bit собираете проект под 32-bit, то разумеется и библиотека нужна 32-bit.
2) Тут скорее зависит не столь от Windows сколь от самого клиентского приложения. Если оно 64-bit, нужна 64-bit библиотека. Но мне кажется правильным использовать на 64-bit версии Windows 64-bit клиента, хотя действительно Windows умеет эмулировать работу для 32-bit приложений.
3) Как вы понимаете, libpq.dll тоже собирается из исходников, так что всё что вам нужно - это набор исходных текстов PostgreSQL и компилятор, чтобы собрать libpq.dll у себя. Насколько мне известно, SDK для PostgreSQL отдельно от сервера не поставляется (на платформе Windows, в Linux ситуация другая), хотя можете попробовать обратится в список рассылки разработчиков и задать им этот вопрос.
среда разработки и КОМПИЛЯТОР
среда разработки и КОМПИЛЯТОР у меня точно под 32-bit
То есть мне нужно и в проекте и для клиентов только 32-bit длл от постгреса ?
И тогда вопрос есть ли какие то известные проблемы при взаимодействии 64-bit сервера постгрес и 32-bit клиентов с 32-bit длл постгреса ?
Если очень нужно я и сервер могу перевести на 32-bit постгрес, но если проблем нет то по моему на 64bit винде лучше иметь 64-bit версию постгреса
> То есть мне нужно и в
> То есть мне нужно и в проекте и для клиентов только 32-bit длл от постгреса ?
да
> И тогда вопрос есть ли какие то известные проблемы при взаимодействии 64-bit сервера постгрес и 32-bit клиентов с 32-bit длл постгреса ?
Мне о таких проблемах неизвестно. Протокол не меняется от битности системы, разрядность типов данных тоже. Отличие 32-bit от 64-bit архитектуры - это невозможность использовать более 2G оперативки, поэтому если нужно больше - нужен 64-bit PostgreSQL и Windows.
спасибо за ответы, все стало
спасибо за ответы, все стало намного яснее
спокойно продолжу разработку