Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

31.2. Chức năng trạng thái tỷ lệ kèo bóng đá

Các chức năng này có thể được sử dụng để thẩm vấn trạng thái của đối tượng tỷ lệ kèo bóng đá cơ sở dữ liệu hiện có.

Tip: libpqLập trình viên ứng dụng nên cẩn thận để duy trìPGConnTrừu tượng. Sử dụng các hàm accessor được mô tả bên dưới để có được nội dung củaPGConn. Tham khảo nội bộPGConnTrường sử dụnglibpq-int.hkhông được khuyến nghị vì chúng có thể thay đổi trong tương lai.

Các chức năng sau trả về các giá trị tham số được thiết lập tại tỷ lệ kèo bóng đá. Các giá trị này được cố định cho tuổi thọ củaPGConnĐối tượng.

PQDB

Trả về tên cơ sở dữ liệu của tỷ lệ kèo bóng đá.

char *pqdb (const pgconn *Conn);
PQUSER

Trả về tên người dùng của tỷ lệ kèo bóng đá.

char *pquser (const pgconn *Conn);
PQPass

Trả về mật khẩu của tỷ lệ kèo bóng đá.

Char *PQPass (const pgconn *Conn);
PQHOST

Trả về tên máy chủ máy chủ của tỷ lệ kèo bóng đá.

char *pqhost (const pgconn *Conn);
PQPort

Trả về cổng tỷ lệ kèo bóng đá.

char *pqport (const pgconn *Conn);
pqtty

Trả về gỡ lỗittycủa tỷ lệ kèo bóng đá. (Điều này là lỗi thời, vì máy chủ không còn chú ý đếnttyCài đặt, nhưng chức tỷ lệ kèo bóng đá vẫn cho khả tỷ lệ kèo bóng đá tương thích ngược.)

char *pqtty (const pgconn *Conn);
PQOptions

Trả về các tùy chọn dòng lệnh được truyền trong yêu cầu tỷ lệ kèo bóng đá.

char *pqoptions (const pgconn *Conn);

Các chức tỷ lệ kèo bóng đá sau khi trả về dữ liệu trạng thái có thể thay đổi khi các hoạt động được thực thi trênPGConnĐối tượng.

pqstatus

Trả về trạng thái của tỷ lệ kèo bóng đá.

ConnstatusType pqStatus (const pgconn *Conn);

Trạng thái có thể là một trong một số giá trị. Tuy nhiên, chỉ có hai trong số này được nhìn thấy bên ngoài quy trình tỷ lệ kèo bóng đá không đồng bộ:Connection_okConnection_Bad. Một tỷ lệ kèo bóng đá tốt với cơ sở dữ liệu có trạng tháiConnection_ok. Một nỗ lực tỷ lệ kèo bóng đá thất bại được báo hiệu bởi trạng tháiConnection_Bad. Thông thường, tỷ lệ kèo bóng đá OK sẽ vẫn như vậy cho đến khipqfinish, nhưng lỗi truyền thông có thể dẫn đến tỷ lệ kèo bóng đá thay đổi thànhConnection_Badsớm. Trong trường hợp đó, ứng dụng có thể cố gắng khôi phục bằng cách gọipqreset.

Xem mục choPQConnectStartParams, PQConnectStartPQConnectPollLiên quan đến các mã tỷ lệ kèo bóng đá khác có thể được trả về.

PQTransactionStatus

Trả về tỷ lệ kèo bóng đá chuyển đổi hiện tại của máy chủ.


tỷ lệ kèo bóng đá có thể làPQTRANS_IDLE(hiện đang nhàn rỗi),pqtrans_active(một lệnh đang được tiến hành),pqtrans_intrans(nhàn rỗi, trong một khối giao dịch hợp lệ) hoặcpqtrans_inerror(nhàn rỗi, trong một khối giao dịch thất bại).PQTRANS_UNKNOWNđược báo cáo nếu tỷ lệ kèo bóng đá xấu.pqtrans_activechỉ được báo cáo khi truy vấn đã được gửi đến máy chủ và chưa hoàn thành.

PQParameterstatus

Xem lên cài đặt tham số hiện tại của máy chủ.

const char *pqparameterstatus (const pgconn *Conn, const char *paramname);

Các giá trị tham số nhất định được báo cáo tự động khi khởi động tỷ lệ kèo bóng đá hoặc bất cứ khi nào giá trị của chúng thay đổi.PQParameterstatuscó thể được sử dụng để thẩm vấn các cài đặt này. Nó trả về giá trị hiện tại của một tham số nếu được biết hoặcnullNếu tham số không được biết.

tham số được báo cáo là bản phát hành hiện tại bao gồmserver_version, server_encoding, client_encoding, application_name, is_superuser, session_Authorization, Datestyle, IntervalStyle, timezone, integer_datetimesStandard_Conforming_Strings. (server_encoding, timezoneinteger_datetimeskhông được báo cáo bởi các bản phát hành trước 8.0;Standard_Conforming_StringsKhông được báo cáo bởi các bản phát hành trước 8.1;IntervalStylekhông được báo cáo bởi các bản phát hành trước 8.4;application_namekhông được báo cáo bởi các bản phát hành trước 9.0.) Lưu ý rằngserver_version, server_encodinginteger_datetimesKhông thể thay đổi sau khi khởi động.

Máy chủ Pre-3.0-Protocol không báo cáo Cài đặt tham số, nhưnglibpqBao gồm logic để có được giá trị choserver_versionclient_encodingDù sao. Các ứng dụng được khuyến khích sử dụngPQParameterstatuschứ không phảiad hocMã để xác định các giá trị này. (Tuy nhiên, hãy cẩn thận với tỷ lệ kèo bóng đá Pre-3.0, thay đổiclient_encodingViasetSau khi tỷ lệ kèo bóng đá khởi động sẽ không được phản ánh bởiPQParameterstatus.) Đối vớiserver_version, Xem thêmPQServerVersion, trả về thông tin ở dạng số dễ so sánh với.

Nếu không có giá trị choStandard_conforming_stringsđược báo cáo, các ứng dụng có thể giả sử đó làTẮT, nghĩa là, các dấu gạch chéo ngược được coi là trốn thoát trong các chuỗi chữ. Ngoài ra, sự hiện diện của tham số này có thể được coi là một dấu hiệu cho thấy cú pháp chuỗi thoát (E '...') được chấp nhận.

Mặc dù con trỏ được trả về được khai báoconst, Thực tế nó chỉ vào bộ lưu trữ có thể thay đổi được liên tỷ lệ kèo bóng đá vớiPGConnCấu trúc. Không khôn ngoan khi cho rằng con trỏ sẽ vẫn còn hiệu lực trên các truy vấn.

PQProtocolVersion

thẩm vấn giao thức frontend/phụ trợ đang được sử dụng.

int pqProtocolVersion (const pgconn *Conn);

Các ứng dụng có thể muốn sử dụng chức năng này để xác định xem một số tính năng nhất định có được hỗ trợ hay không. Hiện tại, các giá trị có thể là 2 (giao thức 2.0), giao thức 3 (3.0) hoặc 0 (tỷ lệ kèo bóng đá xấu). Phiên bản giao thức sẽ không thay đổi sau khi tỷ lệ kèo bóng đá khởi động hoàn tất, nhưng về mặt lý thuyết, nó có thể thay đổi trong quá trình đặt lại tỷ lệ kèo bóng đá. Giao thức 3.0 thường sẽ được sử dụng khi giao tiếp vớiPostgreSQL7.4 hoặc các máy chủ hoặc sau đó; Máy chủ trước 7.4 chỉ hỗ trợ giao thức 2.0. (Giao thức 1.0 bị lỗi thời và không được hỗ trợ bởilibpq.)

PQServerVersion

Trả về một số nguyên đại diện cho phiên bản phụ trợ.

int pqserverversion (const pgconn *Conn);

Các ứng dụng có thể sử dụng chức năng này để xác định phiên bản của máy chủ cơ sở dữ liệu mà chúng được tỷ lệ kèo bóng đá. Số được hình thành bằng cách chuyển đổi số chính, nhỏ và sửa đổi thành các số hai chữ số và nối chúng lại với nhau. Ví dụ: phiên bản 8.1.5 sẽ được trả về dưới dạng 80105 và phiên bản 8.2 sẽ được trả lại vì 80200 (số 0 không được hiển thị). Số không được trả về nếu tỷ lệ kèo bóng đá xấu.

pqerrormessage

Trả về thông báo lỗi được tạo gần đây nhất bởi một thao tác trên tỷ lệ kèo bóng đá.

char *pqerrormessage (const pgconn *Conn);

Gần như tất cảlibpqCác chức tỷ lệ kèo bóng đá sẽ đặt tin nhắn chopqerrormessageNếu họ thất bại. Lưu ý rằng bằnglibpqHội nghị, không trốngpqerrormessagetỷ lệ kèo bóng đá quả có thể bao gồm nhiều dòng và sẽ bao gồm một dòng mới. Người gọi không nên giải phóng tỷ lệ kèo bóng đá quả trực tiếp. Nó sẽ được giải phóng khi được liên tỷ lệ kèo bóng đáPGConnXử lý được chuyển chopqfinish. Chuỗi tỷ lệ kèo bóng đá quả không nên được dự kiến ​​sẽ giữ nguyên trong các hoạt động trênPGConnCấu trúc.

PQSocket

Lấy số lượng mô tả tệp của ổ cắm tỷ lệ kèo bóng đá vào máy chủ. Một mô tả hợp lệ sẽ lớn hơn hoặc bằng 0; Kết quả của -1 chỉ ra rằng không có tỷ lệ kèo bóng đá máy chủ hiện đang mở. (Điều này sẽ không thay đổi trong quá trình hoạt động bình thường, nhưng có thể thay đổi trong quá trình thiết lập hoặc đặt lại tỷ lệ kèo bóng đá.)

int pqsocket (const pgconn *Conn);
PQBackendPid

Trả về quy trìnhid(pid) của quá trình phụ trợ xử lý tỷ lệ kèo bóng đá này.

int pqbackendPid (const pgconn *Conn);

phụ trợPIDrất hữu ích cho mục đích gỡ lỗi và để so sánh vớiThông báoTin nhắn (bao gồmPIDcủa quy trình phụ trợ thông báo). Lưu ý rằngPIDthuộc về quá trình thực thi trên máy chủ máy chủ cơ sở dữ liệu, không phải máy chủ cục bộ!

PQConnectionNeedSpassword

Trả về đúng (1) Nếu phương thức xác thực tỷ lệ kèo bóng đá yêu cầu mật khẩu, nhưng không có sẵn. Trả về false (0) nếu không.

int pqconnectionNeedSpassword (const pgconn *Conn);

Hàm này có thể được áp dụng sau khi tỷ lệ kèo bóng đá thất bại cố gắng quyết định có nhắc người dùng để nhận mật khẩu hay không.

PQConnectionSpassword

Trả về đúng (1) Nếu phương thức xác thực tỷ lệ kèo bóng đá sử dụng mật khẩu. Trả về false (0) nếu không.

22676_22727

Hàm này có thể được áp dụng sau khi cố gắng tỷ lệ kèo bóng đá thành công hoặc không thành công để phát hiện xem máy chủ có yêu cầu mật khẩu không.

PQGetSSL

Trả về cấu trúc SSL được sử dụng trong tỷ lệ kèo bóng đá hoặc null nếu SSL không được sử dụng.

VOID *PQGETSSL (const pgconn *Conn);

Cấu trúc này có thể được sử dụng để xác minh các mức mã hóa, kiểm tra chứng chỉ máy chủ và hơn thế nữa. Tham khảoOpenSSLTài liệu cho thông tin về cấu trúc này.

Giá trị trả về thực tế thuộc loạiSSL *, trong đóSSLlà một loại được xác định bởiOpenSSLThư viện, nhưng nó không được tuyên bố theo cách này để tránh yêu cầuOpenSSLTệp tiêu đề. Để sử dụng chức tỷ lệ kèo bóng đá này, mã dọc theo các dòng sau có thể được sử dụng:

#include <libpq-fe.h
#include <openSSL/ssl.h

...

    SSl *SSl;

    dbconn = pqconnectdb (...);
    ...

    SSL = pQGetSSL (dbconn);
    Nếu (SSL)

        / * Sử dụng các chức tỷ lệ kèo bóng đá OpenSSL để truy cập SSL *//