libpq-fe.h和c程序关闭
我在Postgresql上与localhost数据库连接的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 \”)。当我删除以上所有变量时,声明程序运行正常。怎么了
没有找到相关结果
已邀请:
2 个回复
裸雷胜檀哭
超可林
使用
到
通常可以确保不对消息进行缓冲,因此即使程序崩溃也可以看到它们。写to4ѭ并非总是如此。 我假设
返回一个整数,因为这些值在
语句中使用。