Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/50: Рейтинг темы: голосов - 50, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
1

PostgreSQL

26.11.2008, 20:30. Показов 9997. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте. Работаю на одной из фирм , програмистом. Тока начинают. Програмирую на Линуксе. Так вот дали задание сотворить програмку с использованием Libpq . Много чего читала , но никак не могу понять принципы работы . Уже для три сижу на том самом месте Ошибок . НЕ индетефицырует функции описанные в Libpq-fe.h ......
Прошу помощи разобраться.....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2008, 20:30
Ответы с готовыми решениями:

PostgreSQL 9.4.10 1с
Крутится 15 БД 1с Винты баракуды в 10 Пользователей немного порядка 20 Базы занимают порядка 300...

PostgreSQL склад
Учитывая рекомендации, перестроил базу данных (Вот небольшая часть, необходимая для интересующего...

Обновление Postgresql 9.1 - 9.6
Добрый день! Прошу вашей помощи по обновлению версии Postgresql c версии 9.1 до версии 9.6 при...

Установка PostgreSQL
При уставноке PostgreSQL 9.1.1 на Windows 7(64) возникает следующая ошибка "Problem running...

33
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
27.11.2008, 08:24 2
Я сам с Libpq не работал, я подключался к базе данных PostgreSQL с помощью QT функций и подключал #include <qsqlquery.h> и #include <qsqldatabase.h>.
Если это подойдет, могу помочь.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
27.11.2008, 19:26  [ТС] 3
Меня на роботе именно попросили поключить Libpq.
Там говорят что надо вписать в строчку с gcc и адресами просто суфикс -lpq.
Но понятия не имею куда вписывать ..... Это раз. Во вторых , мне кажеться проблема находиться в том , чтоб подключить через свойства проекта именно эту библиотеку....Но вот как ..... Мне кажеться там еще надо прописать через суб-проект или через пути линков .... Но ....как.....
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 09:08 4
А в чем ты пишешь программу, я имею в виду среду разработки, как компилируешь программу, командой make или gcc, если командой gcc, то в этой команде прописываешь gcc -lpq и далее имя компилируемого файла, если командой make, то в Makefile проекта находишь строчку, где происходит вызов команды gcc, обычно через переменную, например CC=gcc или g++, и так же вписываешь в эту строчку ключь -lpq.
Так же надо в проекте подключить файл #include <libpq-fe.h>.
А вообще я у себя в Linux нашел описание этой библиотеки в html формате, находится в папке: /usr/share/doc/postgresql-7.2.1/html, посмотри, возможно в твоей версии Linux это тоже есть, только версия postgresql может быть другая. В этой папке открываешь файл libpq.html и если ты дружишь с техническим английским (а без него тебе в програмировании будет сложно), то можешь разобраться, там даже примеры программ есть, и возможные ошибки при компиляции проекта с их устранением. Сама библиотека libpq находится в папке /usr/lib.
Успехов .
P.S. Если всё же ты у себя в Linux не найдешь этого описания, то напиши мне в личку адрес своей электронной почты и я тебе скину файлы с описанием.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 11:08  [ТС] 5
Я програмирую на KDevelop 3.5.1
Компилирую програму командой make.
Файл #include <libpq-fe.h> уже был подключен с самого начала по совету сотрудника,
Папку /usr/share/doc/postgresql-7.2.1/html не нашла , в моей папке /usr/share/doc/ находяться другие папки , но про эту библиотеку нет ничего ,
Буду рада за дополнительную информацию ( мой адрес azazelll@ukr.net )
Просмотрела свой Makefile. Не совсем понимаю куда прописывать ключ ? ибо прописка в даные строчки ничего не меняе ( далее не распознает функции )
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2

А вот вывод консоля собственно после применения функции make
~/Listings # make
make all-recursive
make[1]: Entering directory `/root/Listings'
Making all in src
make[2]: Entering directory `/root/Listings/src'
/bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -o listings listings.o
g++ -g -O2 -o listings listings.o
listings.o: In function `exit_nicely':
/root/Listings/src/listings.cpp:44: undefined reference to `PQfinish'
listings.o: In function `main':
/root/Listings/src/listings.cpp:69: undefined reference to `PQconnectdb'
/root/Listings/src/listings.cpp:72: undefined reference to `PQstatus'
/root/Listings/src/listings.cpp:87: undefined reference to `PQexec'
/root/Listings/src/listings.cpp:88: undefined reference to `PQresultStatus'
/root/Listings/src/listings.cpp:90: undefined reference to `PQerrorMessage'
/root/Listings/src/listings.cpp:91: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:99: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:104: undefined reference to `PQexec'
/root/Listings/src/listings.cpp:105: undefined reference to `PQresultStatus'
/root/Listings/src/listings.cpp:107: undefined reference to `PQerrorMessage'
/root/Listings/src/listings.cpp:108: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:111: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:113: undefined reference to `PQexec'
/root/Listings/src/listings.cpp:114: undefined reference to `PQresultStatus'
/root/Listings/src/listings.cpp:116: undefined reference to `PQerrorMessage'
/root/Listings/src/listings.cpp:117: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:122: undefined reference to `PQnfields'
/root/Listings/src/listings.cpp:124: undefined reference to `PQfname'
/root/Listings/src/listings.cpp:128: undefined reference to `PQntuples'
/root/Listings/src/listings.cpp:131: undefined reference to `PQgetvalue'
/root/Listings/src/listings.cpp:128: undefined reference to `PQntuples'
/root/Listings/src/listings.cpp:135: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:138: undefined reference to `PQexec'
/root/Listings/src/listings.cpp:139: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:142: undefined reference to `PQexec'
/root/Listings/src/listings.cpp:143: undefined reference to `PQclear'
/root/Listings/src/listings.cpp:146: undefined reference to `PQfinish'
/root/Listings/src/listings.cpp:75: undefined reference to `PQerrorMessage'
collect2: ld returned 1 exit status
make[2]: ***[listings] Error 1
make[2]: Leaving directory `/root/Listings/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Listings'
make: *** [all] Error 2
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 11:28 6
Описание сбросил.
Я сам в KDevelop тоже писал, но в основном использовал библиотеку QT.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 11:33  [ТС] 7
Спасибо за архив, прочту обязательно
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 12:16 8
Цитата Сообщение от Mikro_Alex Посмотреть сообщение
Просмотрела свой Makefile. Не совсем понимаю куда прописывать ключ ? ибо прописка в даные строчки ничего не меняе ( далее не распознает функции )
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
Найди в Makefile строчку похожую на эту:
$(RESULT): $(FILES_H)
$(CC) -shared -lpthread -Wl,-soname,$(NAME).so.$(MAJOR_VERSION) -o $(RESULT) $(FILES_OBJ)
Это пример из моего проекта, в похожей строчке после $(CC) пропиши ключ -lpq,
кстати судя по тому, что ты привела в примере листинга Makefile, то ты не тот файл открываешь, обычно проект KDevelop состоит из нескольких папок, главная папка с названием проекта, а вней еще одна такаяже пака, в ней находятся все исходники и в ней же создается исполняемый файл, вот в этой папке тоже есть файл Makefile, вот его и надо смотреть.

Добавлено через 15 минут 6 секунд
А более правильно наверное будет прописать эту библиотеку через сам KDevelop, потому что прописаное вручную в Makefile изменения могут быть перетерты самим KDevelop.
Для этого открываешь свой проект через KDevelop, открываешь меню Project/Option
Там переходишь на вкладку Linker Options и в строчке additional librares прописываешь следующую строчку: $(LIB_QPE) -lpq.
Лично я так сам подключал свои библиотеки созданные в QT.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 12:53  [ТС] 9
Просмотрела все Makefile , отличаються первой строчкой VPATH = /root/Listings
И в копирайтах указаным адресом, у всех их них даже вблизи похожей строчки не вижу,

Попрбовала прописать библиотеку , выдал :
cd '/root/Listings/debug' && LDFLAGS="$(LIB_QPE) -lpq" CXXFLAGS="-g3" "/root/Listings/configure" --enable-debug=full
/bin/sh: LIB_QPE: command not found
installing -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: error: source directory already configured; run "make distclean" there first
*** Exited with status: 1 ***

Затеми снова пропустила через консоль командой мейк , выдало то же что и выдавало,
Еще одно - закладки Linker Options как таковой нет , вписала в Linker Flags .
Робота стоит

Попробовала открыть еще один проект с тем же кодом
Через мейк команджу оно дает ошибку о том что не создано еще мейкфайло / Попробовала использовать gcc -lpq
Сразу выдало ,
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lpq
collect2: ld returned 1 exit status

Хотелось бы узнать , в чем проблема и заморочка ( кстати и предыдущий проект на другую команду выдает те же рядки )
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 13:50 10
А может у тебя в Linux этой библиотеки нет, попробуй в папке usr/lib найти библиотеку libpq она должна быть с расширением so.
А на счет LIB_QPE, то это вроде только для своих подключаемых библиотек надо, в этой переменной должен храниться путь к этим библиотекам, попробуй просто прописать без LIB_QPE.
На всякий случай, в консоли набрать команду ldconfig, наврядли поможет, но попробовать стоит.

Добавлено через 5 минут 27 секунд
Кстати, что у тебя стоить за Linux?
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 13:58  [ТС] 11
Попробовала поискать , выдало два адреса
home/usr/include/postgresql/libpq
home/usr/include/postgresql/internal/libpq
два каталога / В них по хидеру , Никаких расширений so ,
Я кажеться начинаю понимать что таки эта библиотека не проставлена
Тогда надо ее проставить , где ее брать .,

П/с чуствую себя чайником в работе , уже неделю сиду над этой проблемой

Стоит Линукс OpenSuse
А если точней
OS: Linux 2.6.25.5-1.1-default x86_64
System: openSUSE 11.0 (x86_64)
KDE: 4.0.4 (KDE 4.0.4 >= 20080505) "release 15.1"
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 14:46 12
У меня KDevelop 3.3 и я в нем попробовал созать стандартный проект, с помощью мастера, подключил i#include <libpq-fe.h>, затем в параметрах проекта перешол на вкладку "параметры configure", на этой вкладке в поле "Параметры компановщика (LDFLAGS)" прописал -lpq. Нажал окей, он предложил переконфигурировать проект, нажал окей, через какоето время он сообщил, что проект сконфигурирован, запустил копиляцию и ни одной ошибки он мне не выдал, сказал, что успешное завершение. Сами функции из этой библиотеки я запускать не пробовал, но думаю, что они тоже заработают. Затем пустил поиском по файлам на содержание строки -lpq и он мне нашел в ./debag/src/Makefile строчку LDFLAGS = -lpq.
Попробуй, может заработает.

Добавлено через 18 минут 38 секунд
А ты точно уверена, что у тебя ее в папке /usr/lib нет, потому что она должна быть именно там, попробуй зайди в папку и нажми Ctrl+s затем набери libpq, по мере набора, он должен переходить по файлам с похожим названием, там должна быть ссылка на библиотеку, она записана вот так: @libpq.so, а эта ссылка уже ссылается на библиотеку, у меня он называется libpq.so.4.0 возможно есть и более новые версии не знаю, но у меня стоит ASP Linux 12, есть конечно и другие, но этот напболее последней версии. KDE 3.5.0, так что у тебя версия поновее будет.

А если у тебя этой библиотеки все таки нет, то доставить можно только из дистрибутива твоего Linux, если там конечно есть (должно быть), я конечно могу скинуть свою библиотеку, но не знаю, будет ли она работаь.

Добавлено через 17 минут 12 секунд
Я тут покопался в своем дистрибутиве ASP Linux, и нашел эту библиотеку в rpm файле с названием postgresql-libs-8.2.5-1.0.120asp.i386.rpm, соответственно у тебя должен быть похожий файл только с другой версией, тебе этот rpm-пакет надо будет установить в своем линуксе, если не знаешь как, то я тебе подскажу как, единственное, он может потребовать установить другой пакет из твоего дистрибутива, тогда сначала надо будет установить его (или всю цепочку, если файлов несколько).

Мы тут собираемся отмечать на фирме новоселье, перехали в новую комнату, так что наверное до понедельника, если конечно я еще чем нибудь смогу тебе помочь.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
01.12.2008, 11:13  [ТС] 13
Спасибо большое за помощь , но первый вариант не прошел , а папки таки нет,
Пробую проставить библиотеку , должно помочь,
В скорем времени сообщу о результатах
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
01.12.2008, 12:32 14
Ну как, что-нибудь получается?
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 10:46  [ТС] 15
инсталировала библиотеку, пока все нормально, пробую подключить ,
как верней это сделать?
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 11:08 16
Цитата Сообщение от Alirp Посмотреть сообщение
У меня KDevelop 3.3 и я в нем попробовал созать стандартный проект, с помощью мастера, подключил i#include <libpq-fe.h>, затем в параметрах проекта перешол на вкладку "параметры configure", на этой вкладке в поле "Параметры компановщика (LDFLAGS)" прописал -lpq. Нажал окей, он предложил переконфигурировать проект, нажал окей, через какоето время он сообщил, что проект сконфигурирован, запустил копиляцию и ни одной ошибки он мне не выдал, сказал, что успешное завершение. Сами функции из этой библиотеки я запускать не пробовал, но думаю, что они тоже заработают. Затем пустил поиском по файлам на содержание строки -lpq и он мне нашел в ./debag/src/Makefile строчку LDFLAGS = -lpq.
Попробуй так, как я это описывал ранее, кстати после установки библиотеки, ты проверила, есть ли она в каталоге /usr/lib, если да, то на всякий случай из консоли набери команду ldconfig.
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 11:28  [ТС] 17
Интересно то что после установки она там таки и не появилась , поесть нет файла libpq.so или хотя б подобного ,
возможно я сделала не все до конца, хотя по виду все проинсталено ,в папке инстал есть розпаковано и запущено ,
В принципе, может я не совсем понимаю, что надо дальше делать после make install
Ибо в полях все прописано , даже в мейк файле тоже
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 12:07 18
Опиши, как и что ты устанавливала
0
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 12:16  [ТС] 19
Нашла на офиц. сайте папочку postgresql 8 3 5 .
Скачала , розпаковала в папку install
Затем configure - сконфигурировать ( стянула исходники )
make
make install
собстенно те команды которыми оперировала ,
за советами этого должно было хватить чтоб проставить саму библиотеку/
Далее мне кажеться надо подсоиденить ее к каталогам которые работают с KDevelop 3.3,
ибо все флаги и линкеры прописаны,
Чесно говоря ,не совсем понимаю как правильн оустанавливать библиотеку, по сему делала ее не одна, но сейчас поключить ее должна сама ,
В документе Инстал пишет про прописку адресов и про создание своей отдельной базы даних, но у меня то еще нет базы как таковой , есть только программа , в котрой не идентефицируються функции , вот собственно проблема в них
0
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 12:29 20
А скинь мне, то что ты скачала, postgresql 8 3 5, посмотрю, может, что смогу подсказать, адрес у тебя мой должен быть, я тебе скидывал описание.
0
02.12.2008, 12:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2008, 12:29
Помогаю со студенческими работами здесь

Из Oracle в postgresql
Здравствуйте, подскажите пожалуйста, как мигрировать, конвертировать базы данных из Oracle в...

Pgpool и postgresql
Добрый день, должна использовать pgpool, но есть масса вопросов. ПОмогите пожалуйста. 1....

доступ к postgresql
Доброго времени суток, мне нужно подключиться к postgresql через интернет. Прописал в pg_hba...

PostgreSQL функции
CREATE OR REPLACE FUNCTION fizzbuzz() RETURNS TEXT AS $$ DECLARE result TEXT; BEGIN FOR i IN...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru