O PostgreSQL é um banco de dados extremamente eficiente, que não deixa a desejar se comparado com os grandes bancos de dados comerciais.
Neste artigo iremos ver, ainda que de forma bem simplificada, uma das muitas formas de interação com este banco de dados, que é usando a linguagem C, através de uma interface de programação disponibilizada pelo PostgreSQL.
#1Comentário enviado por cbov em 08/12/2005 - 04:16h
muito bom artigo.
eu imaginava ser mais complicado, pelo fato do unico banco que acessei usando C foi o oracle, qual tinha que dar algumas voltas ate gerar o binario
#2Comentário enviado por teovictor em 08/12/2005 - 12:00h
Se a intenção era ser um pontapé inicial, saiba que foi um pontapé certeiro. :) Muito bom para começar a usar o PostgreSQL em C e muito bem explicado.
#3Comentário enviado por bestlinux em 08/12/2005 - 13:12h
Parabéns pelo artigo...
Não sabia que o PostgreSQL "conversava" com C :-)
Muito interessante...
Falow !
#4Comentário enviado por Serafim em 08/12/2005 - 14:35h
Muito interessante o seu artigo. Não sabia que o PostgreSQL podia ser usado no C.
#5Comentário enviado por lennon.jesus em 09/12/2005 - 13:52h
Show de bola!
Gostei muito.
Quando tiver tempo vou testar!
Abraços,
Lennon Jesus
#6Comentário enviado por rjesus em 13/03/2007 - 11:19h
Olá, sou novo no linux, utilizoo o SUSE versão 10.1, tentei executar o exemplo que foi passado acima e obtive o seguinte resultado :
suse:/usr/include/pgsql # gcc $(pkg-config --libs --cflags gtk+-2.0) -g teste1.c
/tmp/ccc0dzwL.o: In function `main':
/usr/include/pgsql/teste1.c:13: undefined reference to `PQconnectdb'
/usr/include/pgsql/teste1.c:15: undefined reference to `PQstatus'
/usr/include/pgsql/teste1.c:28: undefined reference to `PQexec'
/usr/include/pgsql/teste1.c:21: undefined reference to `PQerrorMessage'
/usr/include/pgsql/teste1.c:22: undefined reference to `PQfinish'
/usr/include/pgsql/teste1.c:36: undefined reference to `PQresultStatus'
/usr/include/pgsql/teste1.c:42: undefined reference to `PQresultErrorMessage'
/usr/include/pgsql/teste1.c:45: undefined reference to `PQcmdTuples'
/usr/include/pgsql/teste1.c:53: undefined reference to `PQclear'
/usr/include/pgsql/teste1.c:59: undefined reference to `PQfinish'
collect2: ld returned 1 exit status
Alguêm poderia me ajudar ???
Obigado!
#7Comentário enviado por seferzohar em 06/11/2007 - 16:13h
rjesus
Vc esta compilando o exemplo com as flags erradas para o linker (ld)
pkg-config --libs --cflags gtk+-2.0 gera as flags necessarias para compilacao de programas gráficos utilizando a biblioteca gtk, desnecessária neste exemplo. Para compilar-lo vc precisa que o linker ligue o seu programa a biblioteca libpq, que implementa as funcoes acima.
O seu teste provavelmente irá compilar com o seguinte comando:
gcc -lpq -o teste1 teste1.c
#8Comentário enviado por albertguedes em 19/02/2008 - 19:41h
Quem estiver comproblemas de erro de compilação, criem um arquivo
'Makefile' e coloquem nele estas linhas
Eu testei e compila todos os código feito no artigo do Poleto, e ainda otimiza com a opção "-O".
Depois para compilar é só dar
$ make
no mesmo diretorio onde tenha o 'Makefile' e terá o programa compiladinho.
#9Comentário enviado por netmorais em 30/06/2008 - 16:04h
Poleto
Voce sabe se existe a biblioteca estática libpq para windows (libpq.a ...).
Instalei o Postgres 8.3 num xp e na pasta .../lib só encontro .dll.
Grato
Sergio.
netmorais@bol.com.br
#10Comentário enviado por poleto em 30/06/2008 - 18:13h
netmorais,
Nunca tentei utilizar a libpq a partir do windows.
Mas, acredito que não seja muito diferente, só que, ao invés de usar uma biblioteca com extensão .so, você vai usar uma dll. Se o nome não for o mesmo (libpq.dll, tente pq.dll). De resto, use o procedimento normal do desenvolvimento sobre windows para carregar a dll.
Abraços,
Luiz Poleto
#11Comentário enviado por fabiomattes2011 em 01/09/2008 - 17:52h
Esta biblioteca também funciona no c++, ou tem alguma outra?
#12Comentário enviado por poleto em 01/09/2008 - 17:54h
gelheadbanger,
Teoricamente, não existe motivos para não funcionar.
Qualquer coisa, só perguntar.
Abraços,
Luiz Poleto
#13Comentário enviado por fabiomattes2011 em 03/09/2008 - 16:20h
vo testar aqui com c++... qualquer posto aqui se funcionou... valeu poleto.
#14Comentário enviado por fabiomattes2011 em 03/09/2008 - 17:22h
Kra consegui conectar no c++ mais teve algumas alterações, segue abaxo o código que usei:
#include <iostream>
#include "libpq-fe.h"
using namespace std;
/* Conexão com o banco */
PGconn *conn = NULL;
int main()
{
/* realiza a conexão */
conn = PQconnectdb("host=localhost dbname=TESTE user=admin password=mnpinfo459");
eu imaginava ser mais complicado, pelo fato do unico banco que acessei usando C foi o oracle, qual tinha que dar algumas voltas ate gerar o binario