데이터베이스 서버에 대한 연결이 성공적으로 성공하면 여기에 설명 된 기능은 SQL을 수행하는 데 사용됩니다. 쿼리 및 명령.
PQEXEC
명령을 제출하십시오
서버와 결과를 기다립니다.
토토 꽁 머니 *pqexec (pgconn *conn, const char *query);
반환 a토토 꽁 머니포인터
또는 아마도 널 포인터 일 수 있습니다. 널이 아닌 포인터가 있습니다
일반적으로 메모리 외 조건을 제외하고 반환됩니다
명령을
백엔드. 널이 반환되면 A처럼 취급해야합니다.pgres_fatal_error결과. 사용PQERRORMESSAGE
더 많은 것을 얻으려면
오류에 대한 정보.
the토토 꽁 머니
구조
백엔드에 의해 반환 된 결과를 캡슐화합니다.libpq응용 프로그램 프로그래머는 조심해야합니다
유지하려면토토 꽁 머니추상화. 아래의 액세서 기능을 사용하여
의 내용토토 꽁 머니. 피하다
의 필드를 직접 참조토토 꽁 머니구조가 주제이기 때문에 구조
미래에 변화. (시작PostgreSQL6.4, 구조물의 정의토토 꽁 머니|libpq-fe.h. 오래된 코드가 있다면
액세스토토 꽁 머니직접 필드,
를 포함하여 계속 사용할 수 있습니다libpq-int.h도 고치는 것이 좋습니다
곧 코드.)
pqresultstatus
반환
명령의 결과 상태.
execstatustype pqresultstatus (const 토토 꽁 머니 *res)
pqresultstatus
반환 할 수 있습니다
다음 값 중 하나 :
pgres_empty_query- 백엔드로 전송 된 문자열이 비어있었습니다.
pgres_command_ok- NO를 반환하는 명령의 성공적인 완료 데이터
pgres_tuples_ok- 쿼리가 성공적으로 실행
pgres_copy_out- 복사 (서버에서) 데이터 전송 시작
pgres_copy_in- 복사 (서버로) 데이터 전송 시작
pgres_bad_response- 서버의 응답은 이해되지 않았습니다
pgres_nonfatal_error
pgres_fatal_error
결과 상태가pgres_tuples_ok, 그런 다음 루틴이 설명되었습니다 아래는 질문. 검색되는 선택된 명령 제로 행이 여전히 표시pgres_tuples_ok. pgres_command_ok는 할 수있는 명령입니다 행을 반환하지 마십시오 (삽입, 업데이트 등). 의 응답pgres_empty_query종종 a 클라이언트 소프트웨어의 버그.
pqresstatus
변환
열거 된 유형은 pqresultstatus에 의해 문자열로 반환됩니다
상태 코드를 설명하는 상수.
char *pqresstatus (execstatustype status);
PQRESULTERRORMESSAGE
쿼리와 관련된 오류 메시지를 반환합니다.
오류가없는 경우 빈 문자열.
char *pqresulterrormessage (const 토토 꽁 머니 *res);
바로 다음PQEXEC
또는pqgetresult
Call,PQERRORMESSAGE
(연결 중)
와 같은 문자열을 반환합니다.PQRESULTERRORMESSAGE
(결과).
그러나 A토토 꽁 머니유지됩니다
연결은 파괴 될 때까지 오류 메시지입니다
후속 작업이있을 때 오류 메시지가 변경됩니다
완료. 사용PQRESULTERRORMESSAGE
원할 때
특정 상태를 알고 있습니다토토 꽁 머니; 사용PQERRORMESSAGE
당신이 알고 싶을 때
연결에서 최신 작업의 상태.
PQCLEAR
스토리지를 해제합니다
관련토토 꽁 머니.
모든 쿼리 결과는를 통해 해제되어야합니다.PQCLEAR
더 이상 필요하지 않은 경우.
void pqclear (pqresult *res);
당신은 a를 유지할 수 있습니다.토토 꽁 머니필요한 한 오랫동안 객체; 가지 않습니다
새 쿼리를 발행하거나 닫을 때도
연결. 제거하려면 전화해야PQCLEAR
. 이렇게하지 않으면 발생합니다
프론트 엔드 애플리케이션에서 메모리 누출.
pqmakeemptypy토토 꽁 머니
공허한 구성토토 꽁 머니지정된 상태를 가진 개체.
토토 꽁 머니 * pqmakeemptypy토토 꽁 머니 (pgconn * conn, execstatustype 상태);
이것은libpq's
빈 내부 루틴을 할당하고 초기화하는토토 꽁 머니개체. 수출됩니다
일부 응용 프로그램에서 결과를 생성하는 것이 유용하다고 생각하기 때문입니다
개체 (특히 오류 상태가있는 개체)
그들 자신. 만약에conn
그렇지 않습니다
null 및 상태는 오류, 연결을 나타냅니다
현재 errormessage가에 복사됩니다.토토 꽁 머니.참고PQCLEAR
결국 호출해야합니다
객체,와 마찬가지로토토 꽁 머니libpq자체.
PQescapestring
탈출 a
SQL 쿼리 내에서 사용할 문자열.
SIZE_T PQESCAPESTRING (char *to, const char *from, size_t 길이);
수신 된 문자열을 포함하려는 경우 신뢰할 수없는 소스 (예 : 무작위이기 때문에 사용자가 입력), SQL에 직접 포함시킬 수 없습니다. 보안상의 이유로 쿼리. 대신, 당신은 인용해야합니다 SQL에 의해 해석되는 특수 문자 파서.
PQescapestring
이를 수행합니다
작업. 그만큼From
탈출 할 문자열의 첫 번째 문자,
그만큼길이
매개 변수 카운트
이 문자열의 문자 수 (종료 제로 바이트는
필요하거나 계산하지도).to
할 수있는 버퍼를 가리 킵니다
값의 두 배 이상을 최소한 하나 이상으로 유지하십시오.길이
, 그렇지 않으면 행동
정의되지 않았습니다. 전화PQescapestring
탈출 된 버전을 씁니다
그만큼From
String to theto
버퍼, 스페셜 교체
그들이 어떤 해를 끼칠 수 없도록 캐릭터를 추가하고
제로 바이트 종단. 주변을 둘러싼 단일 따옴표PostgreSQLString Literals는입니다
결과 문자열의 일부가 아닙니다.
PQescapestring
반환
작성자 수to
, 종료 제로 바이트는 포함되지 않습니다.
행동이 정의되지 않음to
andFrom
문자열 중첩.
pqescapebytea
이진을 탈출합니다
끈 (BYTEA타입) SQL 내에서 사용합니다
질문.
부호없는 char *pqescapebytea (부호없는 char *from, size_t from_length, size_t *to_length);
확실한ASCII캐릭터필수탈출됩니다 (그러나
모든 문자Maybe
탈출) a의 일부로 사용될 때BYTEA문자열 리터럴에서SQL진술. 일반적으로 캐릭터를 피하기 위해 변환됩니다
십진수와 동일한 3 자리 숫자 옥탈 번호로ASCII값 및 그 뒤에
두 개의 백 슬래시. 단일 인용문 ( ') 및 백 슬래시 (\)
캐릭터에는 특별한 대체 탈출 시퀀스가 있습니다. 참조사용자 안내서자세한 내용은PQESCAPEBYTEA
이것을 수행합니다
작전, 최소한으로 필요한 문자 만 탈출합니다.
the매개 변수가
탈출 할 문자열의 첫 번째 문자,
그만큼
from_length
매개 변수
이 바이너리 문자열의 문자 수를 반영합니다 (a
제로 바이트 종단은 필요하거나 계산되지 않습니다). 그만큼to_length
매개 변수가 가리킬 것입니다
결과 탈출 된 문자열을 고정하기에 적합한 버퍼에
길이. 결과 문자열 길이에는 포함되지 않습니다
결과의 제로 바이트 종단.
pqescapebytea
반환합니다
탈출 한 버전의파라미터 바이너리 스트링, 발신자 제공 버퍼. 그만큼
Return String에는 모든 특수 문자가 교체되어
PostgreSQL 문자열 리터럴에 의해 올바르게 처리 될 수 있습니다
파서, 그리고BYTEA입력 함수. 에이
제로 바이트 종단도 추가됩니다. 하나의 인용문
Postgresql String Literals를 둘러싸고 있어야합니다.
결과 문자열.
pqntuples
반환합니다
쿼리 결과의 튜플 수 (행)
int pqntuples (const 토토 꽁 머니 *res);
pqnfields
반환합니다
쿼리의 각 행에 필드 (열) 수
결과.
int pqnfields (const 토토 꽁 머니 *res);
pqfname
필드를 반환합니다
(열) 주어진 필드 인덱스와 관련된 이름. 필드
지수는 0에서 시작합니다.
char *pqfname (const 토토 꽁 머니 *res, int field_index);
pqfnumber
반환합니다
주어진 필드와 관련된 필드 (열) 인덱스
이름.
int pqfnumber (const 토토 꽁 머니 *res, const char *field_name);
23980_24048
pqftype
필드를 반환합니다
주어진 필드 인덱스와 관련된 유형. 정수
반환 된 것은 유형의 내부 코딩입니다. 현장 지수
0에서 시작합니다.
OID PQFTYPE (const 토토 꽁 머니 *res, int field_index);
시스템 테이블을 쿼리 할 수 있습니다pg_type의 이름과 속성을 얻습니다 다양한 데이터 유형. 그만큼OID24602_24656SRC/포함/카탈로그/PG_TYPE.H소스에서 나무.
PQFMOD
반환
관련 필드의 유형 별 수정 데이터
주어진 필드 색인으로. 현장 지수는 0에서 시작합니다.
int pqfmod (const 토토 꽁 머니 *res, int field_index);
pqfsize
크기를 반환합니다
주어진 필드와 관련된 필드의 바이트
색인. 현장 지수는 0에서 시작합니다.
int pqfsize (const 토토 꽁 머니 *res, int field_index);
pqfsize
공간을 반환합니다
이 필드에 데이터베이스 튜플에 할당되었습니다.
단어 서버의 이진 표현의 크기
데이터 유형. 필드가 가변적 인 경우 -1이 반환됩니다
크기.
pqbinaryTuples
반환 1
토토 꽁 머니에 이진 튜플 데이터가 포함 된 경우 0
ASCII 데이터를 포함합니다.
int pqbinaryTuples (const 토토 꽁 머니 *res);
현재 이진 튜플 데이터는 이진 커서에서 데이터를 추출하는 쿼리.
pqgetValue
반환 a
단일 필드 (열) a의 1 개의 튜플 (행) 값토토 꽁 머니. 튜플과 필드
지수는 0에서 시작합니다.
char * pqgetValue (const 토토 꽁 머니 * res, int tup_num, int field_num);
대부분의 쿼리의 경우pqgetValue
는 무효가 종결 된 문자입니다
속성 값의 문자열 표현. 하지만 ifpqbinaryTuples ()
is 1, the
값pqgetValue
내부의 유형의 이진 표현입니다.
백엔드 서버의 형식 (크기는 포함되지 않습니다.
필드가 가변 길이 인 경우 Word). 그때는입니다
데이터를 캐스팅하고 변환 할 프로그래머의 책임
올바른 C 유형. 포인터는pqgetValue
일부인 스토리지를 가리 킵니다
의토토 꽁 머니구조. 하나
수정해서는 안되며 명시 적으로 복사해야합니다.
다른 스토리지에 대한 가치를 지나서 사용하려면
의 수명토토 꽁 머니구조 자체.
PQGETISNULL
필드를 테스트합니다
널 입구. 튜플 및 현장 지수는 0에서 시작합니다.
int pqgetisnull (const 토토 꽁 머니 *res, int tup_num, int field_num);
이 함수는 필드에 null이 포함 된 경우 1, 0
널 값이 아닌 값이 포함 된 경우. (pqgetValue
빈 문자열을 반환합니다.
널 필드를위한 널 포인터가 아닙니다.)
pqgetLength
반환합니다
바이트의 필드 (속성) 값의 길이. 튜플과
현장 지수는 0에서 시작합니다.
int pqgetlength (const 토토 꽁 머니 *res, int tup_num, int field_num);
이것은 특정 데이터의 실제 데이터 길이입니다.
값, 즉 객체의 크기입니다.pqgetValue
. 주목하십시오
문자 표현 값,이 크기는 할 일이 거의 없습니다
에 의해보고 된 이진 크기로pqfsize
.
pqprint
모든 것을 인쇄합니다
튜플 및 선택적으로 속성 이름은
지정된 출력 스트림.
void pqprint (파일* fout, /* 출력 스트림* / const 토토 꽁 머니 *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쿼리 결과를 인쇄하려면 더 이상 경우가 아니며이 기능은 더 이상 적극적으로 지원.
pqcmdstatus
반환합니다
생성 된 SQL 명령에서 명령 상태 문자열
그만큼토토 꽁 머니.
char * pqcmdstatus (const 토토 꽁 머니 * res);
pqcmdTuples
반환합니다
SQL 명령에 의해 영향을받는 행 수.
char * pqcmdtuples (const 토토 꽁 머니 * res);
SQL명령 생성 한토토 꽁 머니삽입, 업데이트 또는 삭제하면 포함 된 문자열이 반환됩니다 영향을받는 줄의 수. 명령이 무엇이든 경우 그렇지 않으면 빈 문자열을 반환합니다.
pqoidvalue
반환합니다
삽입 된 행의 객체 IDSQL명령은 삽입 된 삽입물입니다
OID가있는 테이블에 정확히 하나의 행입니다. 그렇지 않으면,
보고Invalidoid.
OID pqoidValue (const 토토 꽁 머니 *res);
유형OID및 상수Invalidoid당신은 정의됩니다 포함libpq헤더 파일. 둘 다 정수 유형이 될 것입니다.
pqoidstatus
반환 a
삽입 된 행의 객체 ID가있는 문자열SQL명령은 an입니다
끼워 넣다. (문자열은0if
인서트는 정확히 하나의 행을 삽입하지 않았거나 대상이
테이블에는 OID가 없습니다.) 명령이
삽입, 빈 문자열을 반환합니다.
char * pqoidstatus (const 토토 꽁 머니 * res);
이 함수는에 찬성하여 더 이상 사용되지 않습니다.pqoidvalue
그리고 스레드-안전하지 않습니다.