이 함수는 다음의 기타 세부정보를 제어합니다.libpq의 행동.
PQclientEncoding 클라이언트 인코딩을 반환합니다.
int PQclientEncoding(const PGconn *콘);
다음과 같은 기호 문자열이 아닌 인코딩 ID를 반환한다는 점에 유의하세요.EUC_JP. 실패하면 -1을 반환합니다. 인코딩 ID를 인코딩 이름으로 변환하려면 다음을 사용할 수 있습니다.
char *pg_encoding_to_char(intencoding_id);
PQsetClientEncoding 클라이언트 인코딩을 설정합니다.
int PQsetClientEncoding(PGconn *콘, const char *인코딩);
콘서버에 대한 연결이고인코딩는 사용하려는 인코딩입니다. 함수가 인코딩을 성공적으로 설정하면 0을 반환하고 그렇지 않으면 -1을 반환합니다. 이 연결의 현재 인코딩은 다음을 사용하여 확인할 수 있습니다.PQclientEncoding.
PQsetErrorVerbosity 다음에서 반환된 메시지의 자세한 정도를 결정합니다.PQerrorMessage그리고PQresultErrorMessage.
typedef 열거형
PQERRORS_TERSE,
PQERRORS_DEFAULT,
PQERRORS_VERBOSE,
PQERRORS_SQLSTATE
PG장확성;
PGVerbosity PQsetErrorVerbosity(PGconn *conn, PGVerbosity verbosity);
PQsetErrorVerbosity상세 모드를 설정하여 연결의 이전 설정을 반환합니다. 안에TERSE모드, 반환된 메시지에는 심각도, 기본 텍스트 및 위치만 포함됩니다. 이는 일반적으로 한 줄에 맞습니다. 그만큼기본값모드는 위 내용과 세부정보, 힌트 또는 컨텍스트 필드(여러 줄에 걸쳐 있을 수 있음)를 포함하는 메시지를 생성합니다. 그만큼상세모드에는 사용 가능한 모든 필드가 포함됩니다. 그만큼SQLSTATE모드에는 오류 심각도와만 포함됩니다.SQLSTATE오류 코드, 사용 가능한 경우(그렇지 않은 경우 출력은 다음과 같습니다.TERSE모드).
상세 설정을 변경해도 이미 존재하는 메시지에는 영향을 미치지 않습니다.PGresult개체, 이후에 생성된 개체만 해당됩니다. (하지만 보세요PQresultVerboseErrorMessage이전 오류를 다른 자세한 내용으로 인쇄하려는 경우.)
PQsetErrorContextVisibility 처리를 결정합니다컨텍스트다음에서 반환된 메시지의 필드PQerrorMessage그리고PQresultErrorMessage.
typedef 열거형
PQSHOW_CONTEXT_NEVER,
PQSHOW_CONTEXT_ERRORS,
PQSHOW_CONTEXT_ALWAYS
PGContextVisibility;
PGContextVisibility PQsetErrorContextVisibility(PGconn *conn, PGContextVisibility show_context);
PQsetErrorContextVisibility컨텍스트 표시 모드를 설정하여 연결의 이전 설정을 반환합니다. 이 모드는 다음 여부를 제어합니다.컨텍스트필드가 메시지에 포함되어 있습니다. 그만큼절대 안함모드에는 포함되지 않음컨텍스트, 그동안항상가능한 경우 항상 포함합니다. 안에오류모드(기본값),컨텍스트필드는 알림 및 경고가 아닌 오류 메시지에만 포함됩니다. (단, 상세 설정이 다음과 같은 경우TERSE또는SQLSTATE, 컨텍스트필드는 컨텍스트 표시 모드에 관계없이 생략됩니다.)
이 모드를 변경해도 이미 존재하는 메시지에는 영향을 미치지 않습니다.PGresult개체, 이후에 생성된 개체만 해당됩니다. (하지만 보세요PQresultVerboseErrorMessage다른 디스플레이 모드로 이전 오류를 인쇄하려는 경우.)
PQtrace 디버깅 파일 스트림에 대한 클라이언트/서버 통신 추적을 활성화합니다.
void PQtrace(PGconn *conn, FILE *stream);
Windows의 경우libpq라이브러리와 응용 프로그램은 서로 다른 플래그로 컴파일됩니다. 이 함수 호출은 응용 프로그램의 내부 표현 때문에 충돌을 일으킬 것입니다.파일포인터가 다릅니다. 특히 멀티스레드/단일 스레드, 릴리스/디버그, 정적/동적 플래그는 라이브러리와 해당 라이브러리를 사용하는 모든 애플리케이션에 대해 동일해야 합니다.
PQuntrace 다음에 의해 시작된 추적을 비활성화합니다.PQtrace.
void PQuntrace(PGconn *conn);