Russian Qt Forum
Ноябрь 23, 2024, 18:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: qt3 и postgres 8.1  (Прочитано 24057 раз)
i9
Гость
« Ответ #15 : Апрель 02, 2006, 21:51 »

Цитата: "SLiDER"
Ушло.
Спасибо, получил, но увы таки не работает Грустный...
Несколько часов компилил Qt MinGW-ом, таки докомпилилось, но с компилированием дров опять заморочки с путями/инклудами....

Наверное надо сделать паузу и пробывать копилять все на VS2005. Кстати, а он точно рабочий драйвер получается? Я не имею ввиду, чтоб Вы базу создавали и к ней конектились, хотяб qt его видит в качестве допустимых дров (имею ввиду QSqlDatabase::drivers() )?
Записан
SLiDER
Гость
« Ответ #16 : Апрель 02, 2006, 22:32 »

Цитата: "i9"
Кстати, а он точно рабочий драйвер получается? Я не имею ввиду, чтоб Вы базу создавали и к ней конектились, хотяб qt его видит в качестве допустимых дров (имею ввиду QSqlDatabase::drivers() )?


Вполне работоспособный. Проверил по полной программе.
Записан
i9
Гость
« Ответ #17 : Апрель 10, 2006, 15:35 »

Таки что-то не то:

MSVC2005,
qt-win-commercial-3.3.5
postgres-8.1 (+ исходники от 8.1.3)

Коментарю в crtdefs.h
Код:
#if !defined(__midl)
_CRT_DEPRECATE_TEXT("This name was supported during some Whidbey pre-releases. Instead, use the standard name errno_t." ) typedef int errcode;
#else
typedef int errcode;
#endif
и в c.h
Код:
#if defined(HAVE_STRINGS_H)
#include <strings.h>
#endif


Компилю libpq.dll, libpq.lib и libpqdll.lib (nmake /f win32.mak), при этом мелькает кучка варнингов "cl: Command line warning D9036: use'EHsc' instead of 'GX'", "cl: Command line warning D9002: ignoring unknown option '/YX'" и куча других о повторном переобъявлении всяких символов. Ну да ладно - все собирается.

Собираю дровину:
Код:
set LIB=%LIB%;C:\psql\src\interfaces\libpq\Release
cd %QTDIR%\plugins\src\sqldrivers\psql
qmake -o Makefile "INCLUDEPATH+=C:\psql\src\include C:\psql\src\interfaces\libpq" psql.pro
nmake


Файлы дровины появляются, но из designer-а не получается сделать коннекта, моя совтина при попытке коннекта говорит "драйвер не загружен".
Записан
SLiDER
Гость
« Ответ #18 : Апрель 10, 2006, 21:21 »

Цитата: "i9"
Файлы дровины появляются, но из designer-а не получается сделать коннекта, моя совтина при попытке коннекта говорит "драйвер не загружен".


А вы случаем не забыли прописать в переменную PATH пути к bin папке PostgreSQL? Очень на то похоже. А то сам PostgreSQL этого не делает.  :?
Записан
i9
Гость
« Ответ #19 : Апрель 10, 2006, 23:51 »

Ура!!!!! Наконец-то.... (таки путь к постгрису, ни в жизнь не догадался бы...)
Огромное-приогромное спасибо! :-))))
Записан
SLiDER
Гость
« Ответ #20 : Апрель 11, 2006, 00:01 »

Цитата: "i9"
Ура!!!!! Наконец-то.... (таки путь к постгрису, ни в жизнь не догадался бы...)
Огромное-приогромное спасибо! :-))))


Да не за что. Рад, что вам все удалось.  Веселый
Записан
arido
Гость
« Ответ #21 : Ноябрь 22, 2006, 18:51 »

Цитата: "SLiDER"
Для этого заходим в директорию src и говорим волшебные слова: nmake /f win32.mak (для Borland C++: make -N -DCFG=Release /f bcc32.mak). После чего Получим все что нам нужно и даже немного больше (psql.exe и pg_config.exe), ну да ладно.:idea:


Скачала исходник postgresql-8.1.4, пытаюсь провести сборку. Использую компилятор BCC5.5. Возникли следующие ошибки:
1. Error E2206 fe-connect.c 2361: Illegal character '\' (0x5c) in function parseServiceInfo
2. Error E2380 fe-connect.c 2361: Unterminated string or character constant in function parseServiceInfo
3. Error E2121 fe-connect.c 2363: Function call missing ) in function parseServiceInfo

Часть fe-connect.c:
Код:

   /*
* This could be used by any application so we can't use the binary
* location to find our config files.
*/
стр. 2360   snprintf(serviceFile, MAXPGPATH, "%s/pg_service.conf",
стр. 2361  getenv("PGSYSCONFDIR") ? getenv("PGSYSCONFDIR") : SYSCONFDIR);
стр. 2362
стр. 2363   if (service != NULL)
   {
 FILE  *f;
 char  buf[MAXBUFSIZE],
  *line;

Подскажите, что сделать, как исправить?
Записан
SLiDER
Гость
« Ответ #22 : Ноябрь 23, 2006, 10:42 »

Цитата: "arido"
Цитата: "SLiDER"
Для этого заходим в директорию src и говорим волшебные слова: nmake /f win32.mak (для Borland C++: make -N -DCFG=Release /f bcc32.mak). После чего Получим все что нам нужно и даже немного больше (psql.exe и pg_config.exe), ну да ладно.:idea:


Скачала исходник postgresql-8.1.4, пытаюсь провести сборку. Использую компилятор BCC5.5. Возникли следующие ошибки:
1. Error E2206 fe-connect.c 2361: Illegal character '\' (0x5c) in function parseServiceInfo
2. Error E2380 fe-connect.c 2361: Unterminated string or character constant in function parseServiceInfo
3. Error E2121 fe-connect.c 2363: Function call missing ) in function parseServiceInfo

Часть fe-connect.c:
Код:

   /*
* This could be used by any application so we can't use the binary
* location to find our config files.
*/
стр. 2360   snprintf(serviceFile, MAXPGPATH, "%s/pg_service.conf",
стр. 2361  getenv("PGSYSCONFDIR") ? getenv("PGSYSCONFDIR") : SYSCONFDIR);
стр. 2362
стр. 2363   if (service != NULL)
   {
 FILE  *f;
 char  buf[MAXBUFSIZE],
  *line;

Подскажите, что сделать, как исправить?


Ох уж мне этот BCC ... первое что приходит в голову, для начала, попробуйте функцию из строк 2360 и 2361 объединить в одну строку. Хотя, похоже, что ему (BCC) какойто макрос не развернуть ни как. Пойду посмотрю исходники.
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #23 : Февраль 29, 2008, 11:19 »

Таки что-то не то:

MSVC2005,
qt-win-commercial-3.3.5
postgres-8.1 (+ исходники от 8.1.3)

Коментарю в crtdefs.h
Код:
#if !defined(__midl)
_CRT_DEPRECATE_TEXT("This name was supported during some Whidbey pre-releases. Instead, use the standard name errno_t." ) typedef int errcode;
#else
typedef int errcode;
#endif
и в c.h
Код:
#if defined(HAVE_STRINGS_H)
#include <strings.h>
#endif

Компилю libpq.dll, libpq.lib и libpqdll.lib (nmake /f win32.mak), при этом мелькает кучка варнингов "cl: Command line warning D9036: use'EHsc' instead of 'GX'", "cl: Command line warning D9002: ignoring unknown option '/YX'" и куча других о повторном переобъявлении всяких символов. Ну да ладно - все собирается.

Собираю дровину:
Код:
set LIB=%LIB%;C:\psql\src\interfaces\libpq\Release
cd %QTDIR%\plugins\src\sqldrivers\psql
qmake -o Makefile "INCLUDEPATH+=C:\psql\src\include C:\psql\src\interfaces\libpq" psql.pro
nmake

Файлы дровины появляются, но из designer-а не получается сделать коннекта, моя совтина при попытке коннекта говорит "драйвер не загружен".

А у меня всеравно вылазит неразрешенная ссылка на _SHGetFolderPath Непонимающий
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #24 : Февраль 29, 2008, 23:15 »

Система XP Pro
Стоит VC6 SE
SDK

однако нигде нет

shfolders.dll ни shfolders.lib

Что делать? Непонимающий

Решил проблему с помощью ODBC, его драйвер создается на УРА!!!
« Последнее редактирование: Март 28, 2008, 16:04 от tmikola » Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #25 : Сентябрь 26, 2008, 11:58 »

Наконец то удалось скомпилировать драйверы для PostgreSQL 8.1
Однако облом.
Из DEMO  запросы проходят, а из программы - записей QSqlQuery всегда 0.
Запрос самый примитивный

qRab->exec("SELECT razmp FROM menurazm");

Можете что либо подсказать?

При подключении к этой же базе через ODBC все нормально... Непонимающий
Записан

Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #26 : Сентябрь 26, 2008, 12:20 »

Ежклмн...
Похоже при использовании драйвера PostgreSQL метод

qRab->numRowsAffected()

всегда возвращает 0...

Или я где то накосячил? Непонимающий Непонимающий Непонимающий

А как еще можно узнать число полученных записей?

Про
Код:
	j=0;
while (qRab->next()) j++;
знаю...
« Последнее редактирование: Сентябрь 26, 2008, 12:23 от Примерный ученик » Записан

Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #27 : Сентябрь 26, 2008, 14:33 »

SELECT count() Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #28 : Сентябрь 26, 2008, 14:47 »

А это как??? Непонимающий
Записан

Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #29 : Сентябрь 26, 2008, 14:49 »

Код:
qRab->exec("SELECT count(razmp) FROM menurazm");
qRab->next();
int numRows=qRab->value(0).toInt();
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 23.