PostgreSQL - Embutindo comandos SQL no seu código C

Existe uma alternativa ao uso de bibliotecas para acesso ao PostgreSQL, que é a inclusão de comandos SQL dentro do próprio código em C. Veremos neste artigo como fazer esta integração.

[ Hits: 67.669 ]

Por: Poleto em 01/06/2006


Introdução



O método conhecido como Embedded SQL (ou SQL embutido) é definido pelo ANSI (American National Standards Institute) e define um conjunto de padrões para que código SQL possa ser usado a partir de programas feitos em outras linguagens de programação, que no nosso caso será o C.

A implementação do PostgreSQL para este conceito é chamado de ECPG. Todo o código SQL contido no programa em C é pré-processado antes por um pré-processador do PostgreSQL, que irá fazer a tradução para código C comum, para então ser compilado por um compilador C.

Este método tem algumas vantagens com relação a outros métodos, comparando aqui com a libpq, entre elas:
  • O gerenciamento de variáveis que irão receber valores retornados por queries é muito mais fácil do que na libpq.
  • Toda sintaxe do SQL é verificada, o que permite que erros desse tipo sejam corrigidos antes de o programa ser de fato compilado.
  • O embedded SQL é definido pelo padrão ANSI, e como o PostgreSQL segue o mais próximo o possível estes padrões, é muito mais fácil portar estes programas para outros bancos de dados.

E claro, nem tudo é vantagem. Entre as desvantagens deste método podemos citar:
  • A depuração do programa pode ser mais complicada, pois o arquivo é pré-processado antes de o compilador C entrar em ação, ou seja, erros do compilador podem ser mais difíceis de encontrar.
  • Deve-se saber antecipadamente a estrutura das tabelas quando for usar comandos SELECT.

Claro, nada é perfeito, e em todas as situações deve ser analisado qual a melhor solução a ser usada.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Criando o ambiente de testes
   3. Iniciando com o ECPG
   4. Conectando com o servidor de banco de dados
   5. Compilando os programas
   6. Inserindo, atualizando e apagando dados de tabelas
   7. Retornando dados de tabelas
   8. Considerações Finais
Outros artigos deste autor

Acessando PostgreSQL com C - Cursores

Instalando o CMS Drupal 4.7

Acessando PostgreSQL com C

Leitura recomendada

Usando MySQL na linguagem C

Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

Acessando PostgreSQL com C

Acessando PostgreSQL com C - Cursores

Embutindo um banco de dados SQLite em sua aplicação C++

  
Comentários
[1] Comentário enviado por marcolinux em 07/06/2006 - 17:11h

Parece que foi DEUS que mandou vc postar este artigo!

Estou justamente sofrendo aqui usando a libpq !


Parabéns pelo material.

MARCOLINUX

[2] Comentário enviado por faustojacome em 10/03/2008 - 23:43h

Apos quebrar muito a cabeca para funcionar no Debian com o PostgreSQL e o ecpg via apt-get aqui vai a forma que consegui compilar.

gcc -g -I/usr/include/postgresql/ -o saida postgreSQL.c -L/usr/lib/postgresql/8.3/lib/ -lecpg -lpq

[3] Comentário enviado por benwin em 28/10/2009 - 07:28h

Porque eu não posso usar variáveis no campo FROM?

EXEC SQL SELECT usuario, senha INTO :varusuario, :varsenha FROM :tabelabd WHERE usuario = :meunumerodb;

Existe alguma forma de burlar isso?

Abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts