tỷ lệ kèo bóng đá샘플
프로그램
/*
* testlibpq.c libpq, postgres frontend의 c 버전 테스트
* 도서관.
*
*
*/
#include <stdio.h
#include "libpq-fe.h"
무효의
exit_nicely (pgconn *conn)
pqfinish (conn);
출구 (1);
기본()
char *pghost,
*pgport,
*pgoptions,
*pgtty;
char *dbname;
int nfields;
INT I,
J;
/ * 파일 * 디버그; */
pgconn *conn;
pgresult *tỷ lệ kèo bóng đá;
/*
* 백엔드 연결의 매개 변수를 설정하여 시작합니다.
* 매개 변수는 null이면 시스템은 합리적인 사용을 시도합니다.
* 환경 변수를 찾거나 실패함으로써 기본값
* 하드 유선 상수 사용
*/
pghost = null; / * 백엔드 서버의 호스트 이름 */
pgport = null; /* port of the backend server */
pgoptions = null; /* 백엔드를 시작하는 특별 옵션
* 서버 */
pgtty = null; / * 백엔드 서버의 TTY 디버깅 */
dbname = "template1";
/ * 데이터베이스에 연결 */
conn = pqsetdb (pghost, pgport, pgoptions, pgtty, dbname);
/*
* 백엔드 연결이 성공적으로 이루어 졌는지 확인하십시오.
*/
if (pqstatus (conn) == connection_bad)
fprintf (stderr, "데이터베이스 '%s'에 대한 연결 실패. \ n", dbname);
fprintf (stderr, "%s", pqerrormessage (conn));
exit_nicely (conn);
/* debug = fopen ( "/tmp/trace.out", "w"); */
/* pqtrace (Conn, Debug); */
/* start a transaction block */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "시작");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_command_ok)
fprintf (stderr, "시작 명령 실패 \ n");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
/*
* pqclear pgresult가 더 이상 피할 필요가 없을 때마다
* 메모리 누출
*/
PQCLEAR (tỷ lệ kèo bóng đá);
/*
* PG_DATABASE의 인스턴스, 시스템 카탈로그
* 데이터베이스
*/
tỷ lệ kèo bóng đá = pqexec (conn, "pg_database에서 select *에서 mycursor cursor를 선언한다");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_command_ok)
fprintf (stderr, "cursor 명령 실패 \ n");
PQclear(tỷ lệ kèo bóng đá);
exit_nicely (conn);
PQCLEAR (tỷ lệ kèo bóng đá);
tỷ lệ kèo bóng đá = PQEXEC (Conn, "MyCursor에서 모두 가져 오기");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_tuples_ok)
fprintf (stderr, "모든 명령은 튜플을 올바르게 반환하지 않았다");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
/ * 먼저 속성 이름을 인쇄 */
nfields = pqnfields (tỷ lệ kèo bóng đá);
for (i = 0; i <nfields; i ++)
printf ( "%-15s", pqfname (tỷ lệ kèo bóng đá, i));
printf ( "\ n \ n");
/ * 다음으로 인스턴스를 인쇄 */
for (i = 0; i <pqntuples (tỷ lệ kèo bóng đá); i ++)
for (j = 0; j <nfields; j ++)
printf ( "%-15s", pqgetValue (tỷ lệ kèo bóng đá, i, j));
printf ( "\ n");
PQCLEAR (tỷ lệ kèo bóng đá);
/ * 커서를 닫습니다 */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "Close MyCursor");
PQCLEAR (tỷ lệ kèo bóng đá);
/* commit the transaction */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "Commit");
PQCLEAR (tỷ lệ kèo bóng đá);
/ * 데이터베이스 연결을 닫고 정리 */
pqfinish (conn);
/* fclose (Debug); */
반환 0;
/*
* testlibpq2.c
* 비동기식 알림 인터페이스 테스트
*
*이 프로그램을 시작한 다음 다른 창의 PSQL에서
* TBL2 알림;
*
* Or, if you want to get fancy, try this:
* 다음과 함께 데이터베이스를 채우십시오.
*
* 테이블 TBL1 (I int4)을 만듭니다.
*
* 테이블 생성 tbl2 (i int4);
*
* tbl1에 삽입 된대로 규칙 R1을 만듭니다.
* (tbl2 값 (new.i)에 삽입; TBL2 알림);
*
* 그리고 그렇게하십시오
*
* TBL1 값 (10)에 삽입;
*
*/
#include <stdio.h
#include "libpq-fe.h"
무효의
exit_nicely (pgconn *conn)
pqfinish (conn);
출구 (1);
기본()
char *pghost,
*pgport,
*pgoptions,
*pgtty;
char *dbname;
int nfields;
INT I,
J;
pgconn *conn;
pgresult *tỷ lệ kèo bóng đá;
pgnotify *알림;
/*
* 백엔드 연결의 매개 변수를 설정하여 시작합니다.
* 매개 변수는 null이면 시스템은 합리적인 사용을 시도합니다.
* 환경 변수를 찾거나 실패함으로써 기본값
* 하드 유선 상수 사용
*/
pghost = null; / * 백엔드 서버의 호스트 이름 */
pgport = null; / * 백엔드 서버의 포트 */
pgoptions = null; /* 백엔드를 시작하는 특별 옵션
* 서버 */
pgtty = null; / * 백엔드 서버의 TTY 디버깅 */
dbname = getenv ( "사용자"); /* 테스트 이름으로 변경하십시오
* 데이터베이스 */
/ * 데이터베이스에 연결 */
conn = pqsetdb (pghost, pgport, pgoptions, pgtty, dbname);
/*
* 백엔드 연결이 성공적으로 이루어 졌는지 확인하십시오.
*/
if (pqstatus (conn) == connection_bad)
fprintf (stderr, "데이터베이스 '%s'에 대한 연결 실패. \ n", dbname);
fprintf (stderr, "%s", pqerrormessage (conn));
exit_nicely (conn);
tỷ lệ kèo bóng đá = pqexec (conn, "청취 tbl2");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_command_ok)
fprintf (stderr, "청취 명령 실패 \ n");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
/*
* pqclear pgresult가 더 이상 피할 필요가 없을 때마다
* 메모리 누출
*/
PQCLEAR (tỷ lệ kèo bóng đá);
동안 (1)
/*
* 수표 사이를 조금 기다리십시오. select ()와 대기
* 더 효율적입니다.
*/
수면 (1);
/ * 비동기 백엔드 메시지 수집 */
PQconsumeInput(conn);
/ * 비동기식 알림 메시지 */
while ((notify = pqnotifies (conn))! = null)
fprintf (stderr,
"Backend Pid '%d'에서 '%s'를 Async 알림 \ n",
notify- relname, notify- be_pid);
무료 (알림);
/ * 데이터베이스 연결을 닫고 정리 */
pqfinish (conn);
반환 0;
/*
* testlibpq3.c libpq, postgres frontend의 c 버전 테스트
* 도서관. 이진 커서 인터페이스를 테스트합니다
*
*
*
* 다음을 수행하여 데이터베이스를 채우십시오.
*
* 테이블 테스트 1 (I int4, d float4, p 다각형)을 만듭니다.
*
* test1 값 (1, 3.567, '(3.0, 4.0, 1.0,
* 2.0) ':: 다각형);
*
* test1 값 (2, 89.05, '(4.0, 3.0, 2.0, 삽입
* 1.0) ':: 다각형);
*
* the expected output is:
*
* 튜플 0 : got i = (4 바이트) 1, d = (4 바이트) 3.567000, p = (4
* 바이트) 2 포인트 boundbox = (hi = 3.000000/4.000000, lo =
* 1.000000,2.000000) 튜플 1 : got i = (4 바이트) 2, d = (4 바이트)
* 89.050003, p = (4 바이트) 2 points boundbox =
* (HI = 4.000000/3.000000, LO = 2.000000,1.000000)
*
*
*/
#include <stdio.h
#include "libpq-fe.h"
#include "utils/geo-decls.h"/ * 다각형 유형 */
무효의
exit_nicely (pgconn *conn)
pqfinish (conn);
출구 (1);
기본()
char *pghost,
*pgport,
*pgoptions,
*pgtty;
char *dbname;
int nfields;
INT I,
J;
int i_fnum,
d_fnum,
p_fnum;
pgconn *conn;
pgresult *tỷ lệ kèo bóng đá;
/*
* 백엔드 연결의 매개 변수를 설정하여 시작합니다.
* 매개 변수는 null이면 시스템은 합리적인 사용을 시도합니다.
* 환경 변수를 찾거나 실패함으로써 기본값
* 하드 유선 상수 사용
*/
pghost = null; / * 백엔드 서버의 호스트 이름 */
pgport = null; / * 백엔드 서버의 포트 */
pgoptions = null; /* 백엔드를 시작하는 특별 옵션
* 서버 */
pgtty = null; / * 백엔드 서버의 TTY 디버깅 */
dbname = getenv ( "사용자"); /* 테스트 이름으로 변경하십시오
* 데이터베이스 */
/ * 데이터베이스에 연결 */
conn = pqsetdb (pghost, pgport, pgoptions, pgtty, dbname);
/*
* 백엔드 연결이 성공적으로 이루어 졌는지 확인하십시오.
*/
if (pqstatus (conn) == connection_bad)
fprintf (stderr, "데이터베이스 '%s'에 대한 연결 실패. \ n", dbname);
fprintf (stderr, "%s", pqerrormessage (conn));
exit_nicely (conn);
/ * 거래 블록 시작 */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "시작");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_command_ok)
fprintf (stderr, "시작 명령 실패 \ n");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
/*
* pqclear pgresult가 더 이상 피할 필요가 없을 때마다
* 메모리 누출
*/
PQCLEAR (tỷ lệ kèo bóng đá);
/*
* PG_DATABASE의 인스턴스, 시스템 카탈로그
* 데이터베이스
*/
tỷ lệ kèo bóng đá = pqexec (conn, "select * from test1에 대한 mycursor binary cursor를 선언한다");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_command_ok)
fprintf (stderr, "cursor 명령 실패 \ n");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
PQCLEAR (tỷ lệ kèo bóng đá);
tỷ lệ kèo bóng đá = PQEXEC (Conn, "MyCursor에서 모두 가져 오기");
if (! tỷ lệ kèo bóng đá || pqresultstatus (tỷ lệ kèo bóng đá)! = pgres_tuples_ok)
fprintf (stderr, "모든 명령은 튜플을 올바르게 반환하지 않았다");
PQCLEAR (tỷ lệ kèo bóng đá);
exit_nicely (conn);
i_fnum = pqfnumber (tỷ lệ kèo bóng đá, "i");
d_fnum = pqfnumber (tỷ lệ kèo bóng đá, "d");
p_fnum = pqfnumber (tỷ lệ kèo bóng đá, "p");
for (i = 0; i < 3; i++)
printf ( "type [ %d] = %d, 크기 [ %d] = %d \ n",
i, pqftype (tỷ lệ kèo bóng đá, i),
i, pqfsize (tỷ lệ kèo bóng đá, i));
for (i = 0; i <pqntuples (tỷ lệ kèo bóng đá); i ++)
int *ival;
float *dval;
int plen;
다각형 *Pval;
/ * 우리는 이것을 우리가 알고있는 3 개의 필드에 이것을 하드 와이어 */
ival = (int *) pqgetValue (tỷ lệ kèo bóng đá, i, i_fnum);
dval = (float *) pqgetValue (tỷ lệ kèo bóng đá, i, d_fnum);
plen = pqgetlength (tỷ lệ kèo bóng đá, i, p_fnum);
/*
* plen doesn't include the length field so need to
* varhdsz의 증분
*/
pval = (다각형 *) malloc (plen + varhdrsz);
pval- size = plen;
memmove ((char *) 및 pval- npts, pqgetValue (tỷ lệ kèo bóng đá, i, p_fnum), plen);
printf ( "튜플 %d : got \ n", i);
printf ( "i = ( %d 바이트) %d, \ n",
pqgetlength (tỷ lệ kèo bóng đá, i, i_fnum), *ival);
printf ( "d = ( %d 바이트) %f, \ n",
pqgetlength (tỷ lệ kèo bóng đá, i, d_fnum), *dval);
printf ( "p = (%d 바이트)%d points \ tboundbox = (hi =%f/%f, lo =%f,%f) \ n",
pqgetlength (tỷ lệ kèo bóng đá, i, d_fnum),
pval-npts,
pval- boundbox.xh,
pval- boundbox.yh,
pval- boundbox.xl,
pval- boundbox.yl);
PQCLEAR (tỷ lệ kèo bóng đá);
/ * 커서를 닫습니다 */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "Close MyCursor");
PQCLEAR (tỷ lệ kèo bóng đá);
/ * 거래 커밋 */
tỷ lệ kèo bóng đá = PQEXEC (Conn, "Commit");
PQCLEAR (tỷ lệ kèo bóng đá);
/ * 데이터베이스 연결을 닫고 정리 */
pqfinish (conn);
반환 0;