亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3026 | 回復(fù): 2
打印 上一主題 下一主題

linux c開(kāi)發(fā)postgresQL的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-12-11 17:02 |只看該作者 |倒序?yàn)g覽
如何用linux c實(shí)現(xiàn)在postgresQL的數(shù)據(jù)庫(kù)中插入一條語(yǔ)句啊?求代碼實(shí)現(xiàn)。小弟謝了

論壇徽章:
3
數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-06-18 22:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-06-21 22:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
2 [報(bào)告]
發(fā)表于 2012-12-12 14:15 |只看該作者
示例代碼:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <libpq-fe.h>


  4. int main(int argc, char * argv[])
  5. {
  6.     PGconn *conn;
  7.     PGresult * dataset;
  8.     ConnStatusType pgstatus;
  9.     char connstr[1024];
  10.     char szSQL[2048];
  11.     char * paramValues = NULL;
  12.     int nParams = 0;
  13.    
  14.    
  15.     sprintf(connstr,
  16.             "hostaddr=%s dbname=%s port=%d user=%s password=%s",
  17.             "127.0.0.1", "osdba", 5432, "osdba", "osdba");
  18.     conn = PQconnectdb(connstr);
  19.     pgstatus = PQstatus(conn);
  20.     if (pgstatus == CONNECTION_OK)
  21.     {
  22.         printf("Connect database success!\n");
  23.     }
  24.     else
  25.     {
  26.         printf("Connect database fail:%s\n",PQerrorMessage(conn));
  27.         return;
  28.     }
  29.    
  30.     sprintf(szSQL, "insert into test values(1,'aaaaaa')");
  31.     dataset = PQexecParams(conn,
  32.                            szSQL,
  33.                            nParams,     /* 參數(shù)個(gè)數(shù) */
  34.                            NULL,        /* 讓后端推出參數(shù)類(lèi)型 */
  35.                            (const char * const*)paramValues,
  36.                            NULL,        /* 因?yàn)槭俏谋,所以必須要參?shù)長(zhǎng)度 */
  37.                            NULL,        /* 缺省是全部文本參數(shù) */
  38.                            0);          /* 是否是二進(jìn)制結(jié)果 */

  39.     if(  (PQresultStatus(dataset) == PGRES_COMMAND_OK ) ||(PQresultStatus(dataset) == PGRES_TUPLES_OK))
  40.     {
  41.         printf("Successfully execute SQL : %s\n",szSQL);
  42.     }
  43.     else
  44.     {
  45.         printf("%s\n",PQerrorMessage(conn));
  46.     }
  47.    
  48.     /* 關(guān)閉數(shù)據(jù)庫(kù)連接并清理 */
  49.     PQfinish(conn);
  50.     return 0;
  51. }
復(fù)制代碼
編譯方法:
gcc -I `pg_config --includedir` -L `pg_config --libdir` pgtest.c -o pgtest -l pq

見(jiàn)下面的演示:
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=#

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2012-12-13 17:05 |只看該作者
我再問(wèn)一個(gè)問(wèn)題  假如我insert進(jìn)去的數(shù)字要求用參數(shù)num = 1,str = “aaaaaaaaaaaaaaa”表示 ,拿你的例子 sprintf(szSQL, "insert into test values(1,'aaaaaa')");就是怎么插進(jìn)去啊?
謝謝你了啊
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP