Postgresql 9.3.25 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 31.libpq- C Thư viện | Tiếp theo |
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_okvàConnection_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
, PQConnectStart
vàPQConnectPoll
Liê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 |
|
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.PQParameterstatus
có 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_datetimesvàStandard_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_encodingvàinteger_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_versionvàclient_encodingDù sao. Các ứng dụng được khuyến khích
sử dụngPQParameterstatus
chứ 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 chopqerrormessage
Nếu
Họ thất bại. Lưu ý rằng bằnglibpqHội nghị, không trốngpqerrormessage
tỷ 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 *//