PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

ODBC v Libpq:biblioteca C para PostgreSQL


O ODBC é útil se você deseja um adaptador padrão que fale uma API semelhante para bancos de dados diferentes. Eu pessoalmente acho que é uma API horrível, mas é amplamente compreendida e bem documentada.

A libpq fala mais diretamente com o PostgreSQL. Você pode obter um melhor desempenho com ele, mas provavelmente não o suficiente para fazer alguma diferença para a maioria dos aplicativos, que gastam tempo na execução de consultas, latência de rede etc., não na biblioteca cliente.

Versões mais recentes do psqlODBC são construídas na libpq e servem como um wrapper ODBC para libpq.

Há também o libdbi, que oferece uma API menos assustadora que o ODBC.

Para completar, há também o SPI de back-end do servidor, que pode ser usado por funções definidas pelo usuário escritas em C e carregadas no servidor PostgreSQL. Não é útil fora das extensões e funções do servidor.

Ah, e há ecpg. Não use epg. É uma ferramenta SQL integrada à linguagem superlegada que existe principalmente para facilitar a portabilidade de alguns outros mecanismos de banco de dados. Não use epg. Sério.

Para C++, há a interface QtSQL (excepcionalmente para Qt, é horrível e dolorosamente limitada, não a use) e libpq++ (OK, mas em grande parte sem manutenção).

Pessoalmente, escrevo código libpq diretamente, mas isso é porque estou trabalhando em código que geralmente entra no PostgreSQL. Se você não consegue imaginar como alvo qualquer coisa exceto PostgreSQL, você pode querer escrever código libpq; caso contrário, provavelmente use ODBC com psqlODBC.