- 论坛徽章:
- 3
|
示例代码:- #include <stdio.h>
- #include <stdlib.h>
- #include <libpq-fe.h>
- int main(int argc, char * argv[])
- {
- PGconn *conn;
- PGresult * dataset;
- ConnStatusType pgstatus;
- char connstr[1024];
- char szSQL[2048];
- char * paramValues = NULL;
- int nParams = 0;
-
-
- sprintf(connstr,
- "hostaddr=%s dbname=%s port=%d user=%s password=%s",
- "127.0.0.1", "osdba", 5432, "osdba", "osdba");
- conn = PQconnectdb(connstr);
- pgstatus = PQstatus(conn);
- if (pgstatus == CONNECTION_OK)
- {
- printf("Connect database success!\n");
- }
- else
- {
- printf("Connect database fail:%s\n",PQerrorMessage(conn));
- return;
- }
-
- sprintf(szSQL, "insert into test values(1,'aaaaaa')");
- dataset = PQexecParams(conn,
- szSQL,
- nParams, /* 参数个数 */
- NULL, /* 让后端推出参数类型 */
- (const char * const*)paramValues,
- NULL, /* 因为是文本,所以必须要参数长度 */
- NULL, /* 缺省是全部文本参数 */
- 0); /* 是否是二进制结果 */
- if( (PQresultStatus(dataset) == PGRES_COMMAND_OK ) ||(PQresultStatus(dataset) == PGRES_TUPLES_OK))
- {
- printf("Successfully execute SQL : %s\n",szSQL);
- }
- else
- {
- printf("%s\n",PQerrorMessage(conn));
- }
-
- /* 关闭数据库连接并清理 */
- PQfinish(conn);
- return 0;
- }
复制代码 编译方法:
gcc -I `pg_config --includedir` -L `pg_config --libdir` pgtest.c -o pgtest -l pq
见下面的演示:
osdba@osdba-work:~/src/ctest$ gcc -I `pg_config --includedir` -L `pg_config --libdir` pgtest.c -o pgtest -l pq
osdba@osdba-work:~/src/ctest$ ./pgtest
./pgtest: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory
osdba@osdba-work:~/src/ctest$ export LD_LIBRARY_PATH=/usr/local/pgsql9.2.1/lib
osdba@osdba-work:~/src/ctest$ ./pgtest
Connect database fail:could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
osdba@osdba-work:~/src/ctest$ pgstart
server starting
osdba@osdba-work:~/src/ctest$ LOG: database system was shut down at 2012-10-16 18:21:53 CST
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
osdba@osdba-work:~/src/ctest$
osdba@osdba-work:~/src/ctest$ ./pgtest
Connect database success!
ERROR: relation "test" does not exist at character 13
STATEMENT: insert into test values(1,'aaaaaa')
ERROR: relation "test" does not exist
LINE 1: insert into test values(1,'aaaaaa')
^
osdba@osdba-work:~/src/ctest$ psql
psql (9.2.1)
Type "help" for help.
osdba=# create table test(id int, name text);
CREATE TABLE
osdba=# \q
osdba@osdba-work:~/src/ctest$ ./pgtest
Connect database success!
Successfully execute SQL : insert into test values(1,'aaaaaa')
osdba@osdba-work:~/src/ctest$ psql
psql (9.2.1)
Type "help" for help.
osdba=# select * from test;
id | name
----+--------
1 | aaaaaa
(1 row)
osdba=#
|
|