我有一個C程序與postgresql上的localhost數據庫連接時出現問題。代碼看起來類似於這樣的:libpq-fe.h和c程序關閉
#include <stdio.h>
#include <libpq-fe.h>
int main() {
int dane;
PGconn *dbh; // definujemy uchwyt do bazy – jest to specjalna zmienna pamiętająca
PGresult *wynik ; //wskaźnik do struktury przechowującej wynik zapytania
dbh = PQconnectdb("dbname=lab1 user=postgres");
// teraz sprawdźmy statud połączenia:
if (PQstatus(dbh) == CONNECTION_OK)
{
printf("Jest polaczenie z baza \n");
// tu będziemy wpisywali całą obsluge bazy danych
wynik = PQexec(dbh,"INSERT INTO osoba(imie,nazw) VALUES('Jan','Kowalski')");
// wyswietlmy status z serwera
//printf(„%s\n」,PQresStatus(wynik));
switch(PQresultStatus(wynik))
{
case PGRES_TUPLES_OK:
// jeśli zapytanie zwroci dane to tutaj je sprawdzimy
break;
case PGRES_COMMAND_OK:
// nie ma danych
printf("Zapytanie sie powiodlo \n");
break;
case PGRES_EMPTY_QUERY:
printf ("Serwer nie mial nic do roboty , moze blad ?\n");
break;
case PGRES_NONFATAL_ERROR:
printf("Blad niekrytyczny, sprobuj ponowic zapytanie\n");
break;
case PGRES_FATAL_ERROR:
default:
printf("Blad krytyczny \n");
// wyswietlmy status bledu
printf("%s\n",PQresultErrorMessage(wynik));
}
// wyczyscmy wynik o ile jest
PQclear(wynik);
// teraz rozłączmy sie z bazą
PQfinish(dbh);
} else { printf("No connection..\n"); }
getch();
return 0;
}
當我運行這個程序時,它自動關閉,沒有任何提示。我不能用任何東西來阻止它,比如getch(),getchar()或system(「PAUSE」)。當我刪除上面的變量時聲明程序運行沒事。有什麼問題?
您的程序是否提供任何輸出?如果您沒有機會閱讀,請從終端/ DOS提示符運行它。 – Eelke 2011-05-31 19:55:30
當我嘗試從cmd.exe運行它會給出錯誤 - 無法讀取DLL庫.. – Kamil 2011-05-31 20:00:14