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 đá tối nay

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

Tip: libpqỨng dụng Các lập trình viên nên cẩn thận để duy trìPGConnTrừu tượng. Sử dụng các chức tỷ lệ kèo bóng đá tối nay của người truy cập được mô tả bên dưới để nhận đượ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 là chịu sự thay đổi trong tương lai.

Các chức tỷ lệ kèo bóng đá tối nay sau đây trả về các giá trị tham số được thiết lập tại sự liên quan. 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 đá tối nay.

char *pqdb (const pgconn *Conn);
PQUSER

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

char *pquser (const pgconn *Conn);
PQPass

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

Char *PQPass (const pgconn *Conn);
PQHOST

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

char *pqhost (const pgconn *Conn);
PQPort

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

char *pqport (const pgconn *Conn);
pqtty

Trả về bản gỡ lỗittycủa sự liên quan. (Điều này là lỗi thời, vì máy chủ không còn trả tiền sự chú ý đếnttyCài đặt, Nhưng chức tỷ lệ kèo bóng đá tối nay vẫn còn cho khả tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay lời yêu cầu.

char *pqoptions (const pgconn *Conn);

Các chức năng sau khi trả về dữ liệu tỷ lệ kèo bóng đá tối nay có thể thay đổi dưới dạng 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 đá tối nay.

ConnstatusType pqStatus (const pgconn *Conn);

tỷ lệ kèo bóng đá tối nay có thể là một trong một số giá trị. Tuy nhiên, chỉ có hai of these are seen outside of an asynchronous connection procedure:Connection_okConnection_Bad. Một tỷ lệ kèo bóng đá tối nay tốt với cơ sở dữ liệu có trạng tháiConnection_ok. Một thất bại Nỗ lực tỷ lệ kèo bóng đá tối nay được báo hiệu bởi trạng tháiConnection_Bad. Thông thường, tỷ lệ kèo bóng đá tối nay OK sẽ vẫn Vì vậy, cho đến khipqfinish, nhưng a Lỗi truyền thông có thể dẫn đến tỷ lệ kèo bóng đá tối nay 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 mã tỷ lệ kèo bóng đá tối nay khác có thể được trả lại.

PQTransactionStatus

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

14515_14582

tỷ lệ kèo bóng đá tối nay có thể làPQTRANS_IDLE(hiện đang nhàn rỗi),pqtrans_active(a 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 giao dịch thất bại khối).PQTRANS_UNKNOWNđược báo cáo nếu tỷ lệ kèo bóng đá tối nay là xấu.pqtrans_activeIS chỉ báo cáo khi một truy vấn đã được gửi đến máy chủ và chưa hoàn thành.

THẬN TRỌNG

PQTransactionStatussẽ cho tỷ lệ kèo bóng đá tối nay quả không chính xác khi sử dụngPostgreSQL7.3 Máy chủ có tham sốAutoCommitĐặt thành TẮT. Phía máy chủ Tính tỷ lệ kèo bóng đá tối nay AutoCommit đã bị phản đối và không tồn tại sau này Phiên bản máy chủ.

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);

Giá trị tham số nhất định được báo cáo bởi máy chủ tự động khi khởi động tỷ lệ kèo bóng đá tối nay 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, timezone,, Vàinteger_datetimeskhông được báo cáo bởi phát hành trước 8.0;Standard_Conforming_Stringskhông được báo cáo bởi 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 đá tối nay Pre-3.0, thay đổiclient_encodingViasetSau khi tỷ lệ kèo bóng đá tối nay khởi động sẽ không được phản ánh bởiPQParameterstatus.) Đối vớiserver_version, xem thêmPQServerVersion, trả về thông tin trong một biểu mẫu 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, Đó là IS, dấu gạch chéo ngược được coi là trốn thoát trong các chuỗi chữ. Cũng, 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 '...') IS được chấp nhận.

Mặc dù con trỏ được trả lại đượ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 đá tối nay vớiPGConnCấu trúc. Nó không khôn ngoan khi cho rằng con trỏ sẽ vẫn còn hiệu lự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);

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

Ứ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à họ được tỷ lệ kèo bóng đá tối nay. Số được hình thành bởi chuyển đổi các 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ả lại là 80105 và phiên bản 8.2 sẽ trả lại dưới dạng 80200 (số 0 không được hiển thị). Zero được trả lại Nếu tỷ lệ kèo bóng đá tối nay xấu.

pqerrormessage

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

char *pqerrormessage (const pgconn *Conn);

Gần như tất cảlibpqCác chức tỷ lệ kèo bóng đá tối nay 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 đá tối nay quả có thể bao gồm nhiều dòng và sẽ bao gồm một dấu vết newline. Người gọi không nên giải phóng tỷ lệ kèo bóng đá tối nay quả trực tiếp. Nó sẽ được được giải phóng khi được liên tỷ lệ kèo bóng đá tối nayPGConnXử lý được truyền chopqfinish. tỷ lệ kèo bóng đá tối nay quả Chuỗi 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 đá tối nay thành 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 hiện tại không có tỷ lệ kèo bóng đá tối nay máy chủ nào 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 tỷ lệ kèo bóng đá tối nay hoặc đặt lại.)

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 đá tối nay này.

int pqbackendPid (const pgconn *Conn);

Phần 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). Ghi chú rằngPIDthuộc về a xử lý thực thi trên máy chủ máy chủ cơ sở dữ liệu, không phải cục bộ chủ nhà!

PQConnectionNeedSpassword

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

int pqconnectionNeedSpassword (const pgconn *Conn);

Hàm này có thể được áp dụng sau khi cố gắng tỷ lệ kèo bóng đá tối nay thất bại Để quyết định có nhắc người dùng về 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 đá tối nay được sử dụng mật khẩu. Trả về false (0) nếu không.

23248_23300

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

PQGetSSL

Returns the SSL structure used in the connection, or null if 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à nhiều hơn nữa. Tham khảoOpenSSLTài liệu để biết thông tin về Cấu trúc này.

Giá trị trả về thực tế thuộc loạiSSL *,, Ở đâuSSLlà một loại được xác định bởiOpenSSLThư viện, nhưng nó không phải là 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 đá tối nay 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 đá tối nay OpenSSL để truy cập SSL *//