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

PostgreSQL

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

Студворк — интернет-сервис помощи студентам
Здраствуйте. Работаю на одной из фирм , програмистом. Тока начинают. Програмирую на Линуксе. Так вот дали задание сотворить програмку с использованием Libpq . Много чего читала , но никак не могу понять принципы работы . Уже для три сижу на том самом месте Ошибок . НЕ индетефицырует функции описанные в Libpq-fe.h ......
Прошу помощи разобраться.....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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 при помощи pg_upgrade Вдохновившись...

33
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
27.11.2008, 08:24
Я сам с Libpq не работал, я подключался к базе данных PostgreSQL с помощью QT функций и подключал #include <qsqlquery.h> и #include <qsqldatabase.h>.
Если это подойдет, могу помочь.
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
27.11.2008, 19:26  [ТС]
Меня на роботе именно попросили поключить Libpq.
Там говорят что надо вписать в строчку с gcc и адресами просто суфикс -lpq.
Но понятия не имею куда вписывать ..... Это раз. Во вторых , мне кажеться проблема находиться в том , чтоб подключить через свойства проекта именно эту библиотеку....Но вот как ..... Мне кажеться там еще надо прописать через суб-проект или через пути линков .... Но ....как.....
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 09:08
А в чем ты пишешь программу, я имею в виду среду разработки, как компилируешь программу, командой 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
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 11:08  [ТС]
Я програмирую на 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
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 11:28
Описание сбросил.
Я сам в KDevelop тоже писал, но в основном использовал библиотеку QT.
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 11:33  [ТС]
Спасибо за архив, прочту обязательно
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 12:16
Цитата Сообщение от 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
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 12:53  [ТС]
Просмотрела все 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
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 13:50
А может у тебя в Linux этой библиотеки нет, попробуй в папке usr/lib найти библиотеку libpq она должна быть с расширением so.
А на счет LIB_QPE, то это вроде только для своих подключаемых библиотек надо, в этой переменной должен храниться путь к этим библиотекам, попробуй просто прописать без LIB_QPE.
На всякий случай, в консоли набрать команду ldconfig, наврядли поможет, но попробовать стоит.

Добавлено через 5 минут 27 секунд
Кстати, что у тебя стоить за Linux?
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
28.11.2008, 13:58  [ТС]
Попробовала поискать , выдало два адреса
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
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
28.11.2008, 14:46
У меня 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
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
01.12.2008, 11:13  [ТС]
Спасибо большое за помощь , но первый вариант не прошел , а папки таки нет,
Пробую проставить библиотеку , должно помочь,
В скорем времени сообщу о результатах
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
01.12.2008, 12:32
Ну как, что-нибудь получается?
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 10:46  [ТС]
инсталировала библиотеку, пока все нормально, пробую подключить ,
как верней это сделать?
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 11:08
Цитата Сообщение от Alirp Посмотреть сообщение
У меня KDevelop 3.3 и я в нем попробовал созать стандартный проект, с помощью мастера, подключил i#include <libpq-fe.h>, затем в параметрах проекта перешол на вкладку "параметры configure", на этой вкладке в поле "Параметры компановщика (LDFLAGS)" прописал -lpq. Нажал окей, он предложил переконфигурировать проект, нажал окей, через какоето время он сообщил, что проект сконфигурирован, запустил копиляцию и ни одной ошибки он мне не выдал, сказал, что успешное завершение. Сами функции из этой библиотеки я запускать не пробовал, но думаю, что они тоже заработают. Затем пустил поиском по файлам на содержание строки -lpq и он мне нашел в ./debag/src/Makefile строчку LDFLAGS = -lpq.
Попробуй так, как я это описывал ранее, кстати после установки библиотеки, ты проверила, есть ли она в каталоге /usr/lib, если да, то на всякий случай из консоли набери команду ldconfig.
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 11:28  [ТС]
Интересно то что после установки она там таки и не появилась , поесть нет файла libpq.so или хотя б подобного ,
возможно я сделала не все до конца, хотя по виду все проинсталено ,в папке инстал есть розпаковано и запущено ,
В принципе, может я не совсем понимаю, что надо дальше делать после make install
Ибо в полях все прописано , даже в мейк файле тоже
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 12:07
Опиши, как и что ты устанавливала
0
 Аватар для Mikro_Alex
0 / 0 / 0
Регистрация: 17.11.2008
Сообщений: 33
02.12.2008, 12:16  [ТС]
Нашла на офиц. сайте папочку postgresql 8 3 5 .
Скачала , розпаковала в папку install
Затем configure - сконфигурировать ( стянула исходники )
make
make install
собстенно те команды которыми оперировала ,
за советами этого должно было хватить чтоб проставить саму библиотеку/
Далее мне кажеться надо подсоиденить ее к каталогам которые работают с KDevelop 3.3,
ибо все флаги и линкеры прописаны,
Чесно говоря ,не совсем понимаю как правильн оустанавливать библиотеку, по сему делала ее не одна, но сейчас поключить ее должна сама ,
В документе Инстал пишет про прописку адресов и про создание своей отдельной базы даних, но у меня то еще нет базы как таковой , есть только программа , в котрой не идентефицируються функции , вот собственно проблема в них
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
02.12.2008, 12:29
А скинь мне, то что ты скачала, postgresql 8 3 5, посмотрю, может, что смогу подсказать, адрес у тебя мой должен быть, я тебе скидывал описание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.12.2008, 12:29
Помогаю со студенческими работами здесь

Установка PostgreSQL
При уставноке PostgreSQL 9.1.1 на Windows 7(64) возникает следующая ошибка &quot;Problem running post-install step. Installation may not...

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

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

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

PostgreSQL функции
CREATE OR REPLACE FUNCTION fizzbuzz() RETURNS TEXT AS $$ DECLARE result TEXT; BEGIN FOR i IN 1..100 LOOP IF i % 3 = 0 THEN...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru