언제나 그렇듯이 어디서나 적합하지 않은 롤 토토이 있습니다.
PQFREEMEM
#|libpq.
void pqfreemem (void *ptr);
|libpq, 특히PQescapeByteaconn
, pqescapebytea
, PQUNESCAPEBYTEA
및pqnotifies
. 이 롤 토토이보다는 특히 중요합니다.free ()
, Microsoft Windows에서 사용하십시오. 이는 DLL에 메모리를 할당하고 응용 프로그램에서 해제하는 것이 다중 스레드/단일 스레드, 릴리스/디버그 및 정적/동적 플래그가 DLL 및 응용 프로그램에 대해 동일하다면 작동하기 때문입니다. Microsoft가 아닌 Windows 플랫폼 에서이 롤 토토은 표준 라이브러리 롤 토토과 동일합니다free ()
.
PQCONNINFOFREE
#PQConnDefaults
또는PQCONNINFOPARSE
.
void pqconninfofree (pqconninfooption *connoptions);
인수가 A 인 경우NULL
포인터, 작동이 수행되지 않습니다.
간단한PQFREEMEM
배열에는 자회사 문자열에 대한 참조가 포함되어 있으므로이를 위해하지 않습니다.
PQENCRYPTPASSWORDCONN
#암호화 된 양식의 준비PostgreSQL비밀번호.
char *pqencryptpasswordconn (pgconn *conn, const char *passwd, const char *user, const char *알고리즘);
이 함수는 다음과 같은 명령을 보내려는 클라이언트 응용 프로그램에서 사용하기위한 것입니다.ALTER 사용자 JOE 암호 'PWD'
. 명령 로그, 활동 표시 등에 노출 될 수 있으므로 원래 CLEARTEXT 암호를 이러한 명령으로 보내지 않는 것이 좋습니다. 대신이 롤 토토을 사용하여 비밀번호를 보내기 전에 암호화 된 양식으로 변환합니다.
thepasswd
and사용자
인수는 ClearText 비밀번호이고 사용자의 SQL 이름입니다.알고리즘
암호를 암호화하는 데 사용할 암호화 알고리즘을 지정합니다. 현재 지원되는 알고리즘은MD5
andScram-Sha-256
(on
andoff
에 대한 별칭으로도 받아 들여집니다MD5
, 이전 서버 버전과의 호환성). 지원에 유의하십시오.Scram-Sha-256
에서 소개되었습니다PostgreSQL버전 10, 이전 서버 버전에서는 올바르게 작동하지 않습니다. 만약에알고리즘
isNULL
,이 함수는의 현재 값에 대해 서버를 쿼리합니다.password_encryption설정. 현재 트랜잭션이 중단되거나 연결이 다른 쿼리를 실행하는 경우 차단 될 수 있으며 실패합니다. 서버의 기본 알고리즘을 사용하려면 차단을 피하려면 쿼리password_encryption
전화하기 전에PQENCRYPTPASSWORDCONN
알고리즘
.
반환 값은에 할당 된 문자열입니다.Malloc
. 발신자는 문자열에 탈출이 필요한 특수 문자가 포함되어 있지 않다고 가정 할 수 있습니다. 사용PQFREEMEM
결과를 완료하면 결과를 제거합니다. 오류가 있으면 반환NULL
및 적절한 메시지가 연결 개체에 저장됩니다.
pqchangepassword
#변경 Apostgresql비밀번호.
pgresult *pqchangepassword (pgconn *conn, const char *user, const char *passwd);
이 함수는 사용pqencryptpasswordconn
명령을 빌드하고 실행하려면Alter User ... 암호 '...'
, 따라서 사용자의 비밀번호를 변경합니다. 그것은와 같은 이유로 존재합니다PQENCRYPTPASSWORDCONN
, 그러나 당신을 위해 명령을 빌드하고 실행할 때 더 편리합니다.PQENCRYPTPASSWORDCONN
통과되었습니다NULL
알고리즘 인수의 경우 서버에 따라 암호화가 수행됩니다password_encryption설정.
the사용자
및passwd
인수는 대상 사용자의 SQL 이름이고 새로운 ClearText 비밀번호입니다.
반환 apgresult
결과를 나타내는 포인터사용자
명령을 발행하기 전에 루틴이 실패한 경우 명령 또는 널 포인터. 그만큼pqresultstatus
함수는 모든 오류에 대한 리턴 값을 확인하기 위해 호출되어야합니다 (널 포인터의 값 포함,이 경우 반환됩니다pgres_fatal_error
). 사용PQERRORMESSAGE
그러한 오류에 대한 자세한 정보를 얻으려면
PQENCRYPTPASSWORD
#MD5 암호화 된 형태의 A 준비PostgreSQL비밀번호.
char *pqencryptpassword (const char *passwd, const char *user);
pqencryptpassword
|PQENCRYPTPASSWORDCONN
. 차이점은pqencryptpassword
연결 객체가 필요하지 않습니다.MD5
항상 암호화 알고리즘으로 사용됩니다.
pqmakeemptypypgresult
#빈 건설pgresult
지정된 상태를 가진 개체.
pgresult *pqMakeEmptyPypgresult (pgconn *conn, execstatustype 상태);
이것은libpq의 내부 롤 토토을 할당하고 초기화하는 내부 롤 토토pgresult
개체. 이 함수는 반환NULL
메모리를 할당 할 수없는 경우. 일부 응용 프로그램은 결과 객체 (특히 오류 상태가있는 객체) 자체를 생성하는 것이 유용하다는 것을 알기 때문에 내보내기. 만약에conn
NULL이 아니고상태
오류를 나타냅니다. 지정된 연결의 현재 오류 메시지가에 복사됩니다.pgresult
. 또한 ifconn
null이 아닙니다. 연결에 등록 된 이벤트 절차가에 복사됩니다.pgresult
. (그들은 얻지 못합니다pgevt_resultcreate
전화, 참조PQFIRERESULTCREATEEVENTS
.) 참고PQCLEAR
결국 A와 마찬가지로 물체에 호출되어야합니다.pgresult
반환libpq자체.
PQFIRERESULTCREATEEVENTS
#해고 apgevt_resultcreate
이벤트 (참조PostgreSQL : 문서 : 17 : 32.14. 토토 결과 시스템) 각 이벤트에 대해 등록 된 각 이벤트 절차pgresult
개체. 성공을 위해 0이 아닌 반환, 이벤트 절차가 실패하면 0이됩니다.
int pqfireresultcreateevents (pgconn *conn, pgresult *res);
theconn
인수는 이벤트 절차로 전달되지만 직접 사용되지는 않습니다. 될 수 있습니다null
이벤트 절차가 사용되지 않는 경우.
이미받은 이벤트 절차pgevt_resultcreate
또는pgevt_resultcopy
이 개체의 이벤트는 다시 시작되지 않았습니다.
이 함수가 분리되어 있다는 주된 이유pqmakeemptypypgresult
a를 만드는 것이 종종 적절하다는 것입니다pgresult
이벤트 절차를 호출하기 전에 데이터로 채우십시오.
pqcopyresult
#a의 사본 만들기pgresult
개체. 사본은 어떤 식 으로든 소스 결과에 연결되어 있지 않으며PQCLEAR
사본이 더 이상 필요하지 않은 경우 호출해야합니다. 함수가 실패하면NULL
반환되었습니다.
pgresult *pqcopyresult (const pgresult *src, int flags);
이것은 정확한 사본을 만들기위한 것이 아닙니다. 반환 된 결과는 항상pgres_tuples_ok
상태, 소스의 오류 메시지를 복사하지 않습니다. (그러나 명령 상태 문자열을 복사합니다.)플래그
인수는 다른 것을 복사하는 것을 결정합니다. 약간 또는 여러 깃발입니다.pg_copyres_attrs
소스 결과의 속성 복사 (열 정의)를 지정합니다.pg_copyres_tuples
소스 결과의 튜플 복사를 지정합니다. (이것은 속성을 복사하는 것을 의미합니다.)pg_copyres_noticehooks
소스 결과를 복사하는 것을 지정합니다. hooks.pg_copyres_events
소스 결과 이벤트 복사를 지정합니다. (그러나 소스와 관련된 인스턴스 데이터는 복사되지 않습니다.) 이벤트 절차가 수신pgevt_resultcopy
이벤트.
pqsetresultattrs
#a의 속성을 설정합니다pgresult
개체.
int pqsetresultattrs (pgresult *res, int numattributes, pgresattdesc *attdescs);
제공attdescs
결과에 복사됩니다. 인 경우attdescs
포인터 ISNULL
또는Numattributes
는 1보다 작고 요청이 무시되고 함수가 성공합니다. 만약에RES
이미 속성이 포함되어 있으면 함수가 실패합니다. 함수가 실패하면 반환 값은 0입니다. 함수가 성공하면 리턴 값은 0이 아닙니다.
pqsetValue
#A의 튜플 필드 값 설정pgresult
개체.
int pqsetValue (pgresult *res, int tup_num, int field_num, char *value, int len);
함수는 필요에 따라 결과의 결과의 내부 튜플 배열을 자동으로 증가시킵니다. 그러나tup_num
인수는보다 작거나 동일해야합니다.pqntuples
,이 함수는 한 번에 하나의 튜플을 튜플 배열 만 키울 수 있습니다. 그러나 기존 튜플의 모든 필드는 순서대로 수정할 수 있습니다. 값 인 경우Field_num
이미 존재하면 덮어 쓸 것입니다. 만약에Len
is -1 또는value
isNULL
, 필드 값은 SQL NULL 값으로 설정됩니다. 그만큼value
는 결과의 개인 저장소에 복사되므로 함수가 반환 된 후에는 더 이상 필요하지 않습니다. 함수가 실패하면 반환 값은 0입니다. 함수가 성공하면 리턴 값은 0이 아닙니다.
pqresultalloc
#a 자회사 할당pgresult
개체.
void *pqresultalloc (pgresult *res, size_t nbytes);
이 함수에 할당 된 메모리가 해제 될 때RES
가 지워집니다. 함수가 실패하면 반환 값이입니다.NULL
. 결과는 모든 유형의 데이터에 대해 적절하게 정렬됩니다.Malloc
.
pqresultMemorySize
#A에 할당 된 바이트 수를 검색합니다pgresult
개체.
size_t pqresultmemorysize (const pgresult *res);
이 값은 모두의 합입니다Malloc
pgresult
객체, 즉, 즉, 해방 될 모든 메모리PQCLEAR
. 이 정보는 메모리 소비 관리에 유용 할 수 있습니다.
pqlibversion
#|libpq사용 중입니다.
int pqlibversion (void);
이 함수의 결과는 런타임에 현재로드 된 LIBPQ 버전에서 특정 롤 토토을 사용할 수 있는지 여부를 결정하는 데 사용될 수 있습니다. 예를 들어 롤 토토을 사용하여 사용 가능한 연결 옵션을 결정할 수 있습니다.PQCONNECTDB
.
결과는 라이브러리의 주요 버전 번호에 10000을 곱하고 작은 버전 번호를 추가하여 형성됩니다. 예를 들어, 버전 10.1은 100001로 반환되고 버전 11.0은 110000으로 반환됩니다.
전공 버전 10 이전,PostgreSQL처음 두 부분이 함께 주요 버전을 나타내는 3 부 버전 번호를 사용했습니다. 해당 버전의 경우pqlibversion
각 부분에 대해 두 자리를 사용합니다. 예를 들어 버전 9.1.5는 90105로 반환되고 버전 9.2.0은 90200으로 반환됩니다.
따라서 롤 토토 호환성을 결정하기 위해 응용 프로그램은의 결과를 나누어야합니다.pqlibversion
논리적 주요 버전 번호를 결정하려면 10000이 아닙니다. 모든 릴리스 시리즈에서는 마지막 두 자리 숫자 만 사소한 릴리스 (버그 고정 릴리스)마다 다릅니다.
이 함수는에 나타났습니다.PostgreSQL버전 9.1이므로 이전 버전에서 필요한 기능을 감지하는 데 사용할 수 없습니다.
pqgetCurrentTimeUsec
#UNIX Epoch 이후 마이크로 초의 수로 표현 된 현재 시간을 검색합니다 (즉,time_t
Times 1 백만).
PG_USEC_TIME_T PQGETCURRENTTIMEUSEC (void);
이것은 주로 사용할 시간 초과 값을 계산하는 데 유용합니다pqsocketpoll
.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면