데이터베이스 서버에 대한 연결이 성공적으로 성공하면 여기에 설명 된 기능은 SQL을 수행하는 데 사용됩니다. 윈 토토 및 명령.
PQEXEC윈 토토 제출Postgres를 기다리십시오 결과.
pgresult *pqexec (pgconn *conn, const char *query);pgresult 포인터 또는 널 포인터를 반환합니다. 에이 비 널 포인터는 일반적으로 메모리를 제외하고 반환됩니다 윈 토토를 백엔드. 널이 반환되면 pgres_fatal_error 결과. pqerrormessage를 사용하여 더 많은 것을 얻으십시오 오류에 대한 정보.
thepgresult구조가 캡슐화됩니다 백엔드에서 반환 된 윈 토토 결과.libpq응용 프로그램 프로그래머가 조심해야합니다 pgresult 추상화를 유지하십시오. 아래 액세서 기능을 사용하십시오 pgresult의 내용에 도달합니다. 직접 참조하지 마십시오 Pgresult 구조의 필드는 변경 될 수 있기 때문입니다. 미래에. (시작Postgres릴리스 6.4, 구조의 정의 pgresult는 Libpq-fe.h에서도 제공되지 않습니다. 오래된 코드가있는 경우 pgresult 필드에 직접 액세스하면 계속 사용할 수 있습니다. libpq-int.h도 포함하지만 코드를 수정하는 것이 좋습니다. 곧.)
pqresultstatus결과를 반환합니다 윈 토토 상태.
execstatustype pqresultstatus (const pgresult *res)pqresultstatus는 다음 값 중 하나를 반환 할 수 있습니다.
pgres_empty_query- 문자열 백엔드로 보낸 것은 비어있었습니다.
pgres_command_ok- 성공 데이터 없음을 반환하는 명령 완료
pgres_tuples_ok- 윈 토토 성공적으로 실행
pgres_copy_out- 복사 (서버에서) 데이터 전송 시작
pgres_copy_in- 복사 (to 서버) 데이터 전송 시작
pgres_bad_response- 서버의 응답은 이해되지 않았습니다
pgres_nonfatal_error
pgres_fatal_error
pqresstatus변환 열거 된 유형은 pqresultstatus에 의해 문자열로 반환됩니다 상태 코드를 설명하는 상수.
char *pqresstatus (execstatustype status);
PQRESULTERRORMESSAGE반환합니다 윈 토토와 관련된 오류 메시지 또는 빈 문자열 오류가 없었습니다.
char *pqresulterrormessage (const pgresult *res);바로 다음PQEXEC또는pqgetresult전화,PQERRORMESSAGE(연결 중)는 동일하게 반환합니다 문자열 asPQRESULTERRORMESSAGE(on 결과). 그러나 pgresult는 오류 메시지를 유지합니다 연결이 파괴 될 때까지 연결의 오류 메시지는됩니다 후속 작업이 완료되면 변경됩니다. 사용PQRESULTERRORMESSAGE당신이 알고 싶을 때 특정 pgresult와 관련된 상태; 사용PQERRORMESSAGE상태를 알고 싶을 때 연결의 최신 작업에서
pqntuples번호를 반환합니다 윈 토토 결과의 튜플 (인스턴스)
int pqntuples (const pgresult *res);
pqnfields번호를 반환합니다 윈 토토 결과의 각 튜플에서 필드 (속성)
int pqnfields (const pgresult *res);
pqbinaryTuples1 인 경우 1을 반환합니다 pgresult에는 이진 튜플 데이터가 포함되어 있습니다. 데이터.
int pqbinaryTuples (const pgresult *res);현재, 이진 튜플 데이터는 쿼리로만 반환 할 수 있습니다. a에서 데이터를 추출합니다.binary커서.
pqfname필드를 반환합니다 (속성) 주어진 필드 인덱스와 관련된 이름. 필드 지수는 0에서 시작합니다.
char *pqfname (const pgresult *res, int field_index);
pqfnumber필드를 반환합니다 (속성) 주어진 필드 이름과 관련된 색인.
int pqfnumber (const pgresult *res, const char *field_name);
10970_11034
pqftype필드 유형을 반환합니다 주어진 필드 인덱스와 관련이 있습니다. 반환 된 정수는입니다 유형의 내부 코딩. 현장 지수는 0에서 시작합니다.
OID pqftype (const pgresult *res, int field_num);시스템 테이블을 윈 토토 할 수 있습니다pg_type의 이름과 속성을 얻으려면 다양한 데이터 유형. 그만큼OIDs of 내장 데이터 유형은에 정의되어 있습니다.src/include/catalog/pg_type.h소스 트리에서.
pqfsize크기를 바이트로 반환합니다 주어진 필드 인덱스와 관련된 필드의. 필드 지수는 0에서 시작합니다.
int pqfsize (const pgresult *res, int field_index);pqfsize이 필드에 할당 된 공간을 데이터베이스 튜플, 즉 서버 바이너리의 크기 데이터 유형의 표현. 필드가 있으면 -1이 반환됩니다 가변 크기.
pqfmod유형 특유의 반환 주어진 필드와 관련된 필드의 수정 데이터 색인. 현장 지수는 0에서 시작합니다.
int pqfmod (const pgresult *res, int field_index);
pqgetValue단일 필드를 반환합니다 (속성) pgresult의 한 튜플 값. 튜플과 필드 지수는 0에서 시작합니다.
char * pqgetValue (const pgresult * res, int tup_num, int field_num);대부분의 윈 토토의 경우pqgetValue무효가 종결되었습니다ASCII속성의 문자열 표현 값. 하지만 ifpqbinaryTuples ()IS 1, 반환 된 값pqgetValueis 내부 형식의 유형의 이진 표현 백엔드 서버 (그러나 크기 단어를 포함하지 않음 필드는 가변 길이)입니다. 그런 다음 프로그래머의 것입니다 데이터를 올바른 C로 캐스팅하고 변환 할 책임 유형. 포인터는pqgetValue일부인 스토리지를 가리 킵니다 pgresult 구조. 하나는 그것을 수정해서는 안됩니다 값을 다른 스토리지에 명시 적으로 복사하십시오. pgresult 구조 자체의 수명을 지나서 사용되었습니다.
pqgetLength길이를 반환합니다 바이트의 필드 (속성). 튜플 및 현장 지수는 시작합니다 0.
int pqgetlength (const pgresult *res, int tup_num, int field_num);이것은 특정 데이터 값의 실제 데이터 길이입니다. 이것이 PQGetValue가 가리키는 물체의 크기입니다. 주목하십시오 ascii-represented 값의 경우이 크기는 PQFSize에 의해보고 된 이진 크기.
PQGETISNULLa 널 입력. 튜플 및 현장 지수는 0에서 시작합니다.
int pqgetisnull (const pgresult *res, int tup_num, int field_num);이 함수는 필드에 null이 포함 된 경우 1, 0이면 0을 반환합니다. 널 값이 아닌 값이 포함되어 있습니다. (pqgetValue는 an을 반환합니다 널 필드를위한 널 포인터가 아닌 빈 문자열.)
pqcmdstatus명령을 반환합니다 생성 된 SQL 명령의 상태 문자열 pgresult.
char * pqcmdstatus (const pgresult * res);
pqcmdtuples번호를 반환합니다 SQL 명령에 의해 영향을받는 줄.
char * pqcmdtuples (const pgresult * res);SQLpgresult가 삽입, 업데이트 또는 삭제되었다고 생성 한 후 영향을받는 행 수를 포함하는 문자열. 명령이 있다면 다른 것은 빈 문자열을 반환합니다.
pqoidvalue개체 ID를 반환합니다 튜플 삽입,SQL명령은 인서트였습니다. 그렇지 않으면 반환invalidoid.
OID pqoidValue (const pgresult *res);유형OID및 상수Invalidoid포함하면 정의됩니다 그만큼libpq헤더 파일. 그들은 할 것입니다 둘 다 정수 유형입니다.
pqoidstatus문자열을 다시 반환합니다 튜플의 객체 ID가 삽입 된 경우SQL명령은 인서트였습니다. 그렇지 않으면 반환합니다 빈 문자열.
char * pqoidstatus (const pgresult * res);이 함수는에 찬성하여 더 이상 사용되지 않습니다.pqoidvalue그리고 스레드-안전하지 않습니다.
pqprint모든 튜플을 인쇄합니다 그리고 선택적으로 속성은 지정된 출력에 이름을 지정합니다 개울.
void pqprint (파일* fout, /* 출력 스트림* / const pgresult *res, const pqprintopt *po); 구조 PQBOOL 헤더; / * 출력 필드 제목 및 행 카운트 인쇄 */ pqbool 정렬; / * 채우기 필드 정렬 */ PQBOOL 표준; / * Old Brain Dead 형식 */ PQBOOL HTML3; / * 출력 HTML 테이블 */ PQBOOL 확장; / * 테이블 확장 */ PQBOOL 호출기; / * 필요한 경우 출력을 위해 호출기를 사용하십시오 */ char *fieldsep; / * 필드 분리기 */ char *tableopt; /* HTML에 삽입테이블 ...*/ char *캡션; /* html캡션*/ char ** fieldname; / * NULL 교체 필드 이름의 배열 */ pqprintopt;이 기능은 이전에에 사용되었습니다.PSQL쿼리 결과를 인쇄하려면 더 이상 사례 및이 기능은 더 이상 적극적으로 지원되지 않습니다.
PQCLEAR스토리지를 해제합니다 pgresult와 관련이 있습니다. 모든 쿼리 결과가 있어야합니다 더 이상 필요하지 않을 때 pqclear를 통해 해방됩니다.
void pqclear (pqresult *res);필요한만큼 Pgresult 객체를 주위에 보관할 수 있습니다. 그것; 새 쿼리를 발행 할 때 또는 심지어 연결을 닫으십시오. 제거하려면 전화해야PQCLEAR. 이렇게하지 않을 것입니다 프론트 엔드 애플리케이션에서 메모리 누출이 발생합니다.
pqmakeemptypypgresult구성 앤 주어진 상태를 가진 빈 pgresult 객체.
pgresult * pqmakeemptypypypgresult (pgconn * conn, execstatustype status);이것은 LIBPQ의 내부 루틴을 할당하고 초기화하는 내부 루틴입니다 빈 pgresult 물체. 일부 응용 프로그램이므로 수출됩니다 결과 객체 (특히 객체)를 생성하는 것이 유용하다고 생각합니다 오류 상태) 자체. Conn이 Null이 아닌 상태 인 경우 오류가 표시되고 연결의 현재 errormessage가 복사됩니다 pgresult로. PQCLEAR는 결국 호출되어야합니다 객체는 libpq 자체에 의해 반환 된 pgresult와 마찬가지로.