Como você conecta um banco de dados SQL pós -FRESSO em C? |
|
Conectar -se a um banco de dados PostgreSQL de C requer o uso da biblioteca LIBPQ. Aqui está um colapso de como fazê -lo, juntamente com explicações e manuseio de erros: 1. Inclua cabeçalhos: `` `c #include #include #include #include // O cabeçalho da biblioteca do cliente PostGresql `` ` 2. Estabelecer conexão: Este é o núcleo do processo. Você precisará de uma string de conexão que especifique os parâmetros do banco de dados. `` `c PGConn *Conn; const char *Conninfo; conninfo ="dbname =myDatabase user =myUser senha =myPassword host =port de localhost =5432"; // Substitua por seus detalhes Conn =pqConnectDB (Conninfo); if (pqstatus (Conn)! =Connection_ok) { fprintf (stderr, "conexão com o banco de dados falhou:%s", pqerRormessage (conn)); Pqfinish (Conn); saída (1); } `` ` * `dbname =myDatabase`: O nome do seu banco de dados PostGresql. * `user =myuser`: Seu nome de usuário PostGresql. * `senha =mypassword`: Sua senha PostGresql. * `host =localhost`: O nome do host ou o endereço IP do servidor PostgreSQL. Altere se o seu banco de dados não for local. * `porta =5432`: O número da porta PostGresql está ouvindo (o padrão é 5432). 3. Executar consultas: Após a conexão, você pode executar consultas SQL. Este exemplo mostra uma consulta simples `select`: `` `c PgResult *res; res =pqexec (Conn, "Select versão ();"); if (pqresultstatus (res)! =pgres_tuples_ok) { fprintf (stderr, "Selecionar falha:%s", pqerRormessage (conn)); Pqclear (res); Pqfinish (Conn); saída (1); } printf ("versão postgreSQL:%s \ n", pqgetValue (res, 0, 0)); Pqclear (res); // Free the Result Set Memory `` ` * `pqexec (Conn," Select versão (); ")`: Executa a consulta SQL. * `pqresultstatus (res)`: Verifica o status da execução da consulta. `Pgres_tuples_ok` indica sucesso. * `pqgetValue (res, 0, 0)`: Recupera o valor do conjunto de resultados. `(0, 0)` Especifica a primeira linha (0) e a primeira coluna (0). 4. Lidar com outros tipos de consulta (inserir, atualizar, excluir): Para consultas `insert`,` update` e `excluir`, você normalmente verifica 'pqcmdtuples' para ver quantas linhas foram afetadas. `` `c res =pqexec (Conn, "inserir em valores myTable (column1, column2) ('value1', 'value2');"); if (pqresultstatus (res) ==pgres_command_ok) { printf ("inserir bem -sucedido. %ld linhas afetadas \ n", pqcmdtuples (res)); } outro { fprintf (stderr, "insert falhou:%s", pqerRormessage (conn)); } Pqclear (res); `` ` 5. Feche a conexão: Sempre feche a conexão quando terminar. `` `c Pqfinish (Conn); `` ` Exemplo completo: `` `c #include #include #include #include int main () { PGConn *Conn; const char *Conninfo; PgResult *res; conninfo ="dbname =myDatabase user =myUser senha =myPassword host =port de localhost =5432"; // Substitua por seus detalhes Conn =pqConnectDB (Conninfo); if (pqstatus (Conn)! =Connection_ok) { fprintf (stderr, "conexão com o banco de dados falhou:%s", pqerRormessage (conn)); saída (1); } res =pqexec (Conn, "Select versão ();"); if (pqresultstatus (res)! =pgres_tuples_ok) { fprintf (stderr, "Selecionar falha:%s", pqerRormessage (conn)); Pqclear (res); Pqfinish (Conn); saída (1); } printf ("versão postgreSQL:%s \ n", pqgetValue (res, 0, 0)); Pqclear (res); Pqfinish (Conn); retornar 0; } `` ` Antes de compilar: * Instale libpq-dev: Você precisará instalar as bibliotecas de desenvolvimento do cliente PostgreSQL. Nos sistemas Debian/Ubuntu, isso geralmente é feito com:`sudo apt-get install libpq-dev` * Compile: Compile seu código usando um compilador C (como GCC):`gcc your_program_name.c -lpq -o your_program_name` Lembre -se de substituir os valores da cadeia de conexão de espaço reservado pelas suas credenciais reais de banco de dados. O manuseio completo de erros é crucial no código de produção para evitar falhas inesperadas. Este exemplo fornece verificação básica de erro; O manuseio de erros mais robusto seria necessário para um aplicativo do mundo real.
|