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 kèo bóng đá pháp cơ sở dữ liệu hiện có.
libpqLập trình viên ứng dụng nên cẩn thận để duy trìPGConn
Trừ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ộPGConn
Trường sử dụnglibpq-int.h
không được khuyến nghị vì chúng có thể thay đổi trong tương lai.
Các hàm sau trả về giá trị tham số được thiết lập khi kèo bóng đá pháp. Các giá trị này được cố định cho tuổi thọ của kèo bóng đá pháp.PQHOST
, PQPort
vàPQPass
Có thể thay đổi nếu kèo bóng đá pháp mới được thiết lập bằng cùng mộtPGConn
Đối tượng. Các giá trị khác được cố định cho vòng đời củaPGConn
Đối tượng.
PQDB
Trả về tên cơ sở dữ liệu của kèo bóng đá pháp.
char *pqdb (const pgconn *Conn);
PQUSER
Trả về tên người dùng của kèo bóng đá pháp.
char *pquser (const pgconn *Conn);
PQPass
Trả về mật khẩu của kèo bóng đá pháp.
Char *PQPass (const pgconn *Conn);
PQPass
Sẽ trả về mật khẩu được chỉ định trong các tham số kèo bóng đá pháp hoặc nếu không có và mật khẩu được lấy từPostgresql: Tài, nó sẽ trả lại điều đó. Trong trường hợp sau, nếu nhiều máy chủ được chỉ định trong các tham số kèo bóng đá pháp, thì không thể dựa vào kết quả củaPQPass
Cho đến khi kèo bóng đá pháp được thiết lập. Trạng thái của kèo bóng đá pháp có thể được kiểm tra bằng hàmpqstatus
.
PQHOST
Trả về tên máy chủ máy chủ của kèo bóng đá pháp đang hoạt động. Đây có thể là tên máy chủ, địa chỉ IP hoặc đường dẫn thư mục nếu kèo bóng đá pháp thông qua ổ cắm UNIX./
.)
char *pqhost (const pgconn *Conn);
Nếu các tham số kèo bóng đá pháp được chỉ định cảhost
vàhostaddr
, sau đóPQHOST
sẽ trả vềhost
Thông tin. Nếu chỉhostaddr
đã được chỉ định, sau đó được trả về. Nếu nhiều máy chủ được chỉ định trong các tham số kèo bóng đá pháp,PQHOST
Trả về máy chủ thực sự được kèo bóng đá pháp với.
PQHOST
returnnull
NếuConn
Đối số lànull
. Mặt khác, nếu có lỗi tạo ra thông tin máy chủ (có lẽ nếu kèo bóng đá pháp chưa được thiết lập đầy đủ hoặc có lỗi), nó sẽ trả về một chuỗi trống.
Nếu nhiều máy chủ được chỉ định trong các tham số kèo bóng đá pháp, không thể dựa vào kết quả củaPQHOST
Cho đến khi kèo bóng đá pháp được thiết lập. Trạng thái của kèo bóng đá pháp có thể được kiểm tra bằng hàmPQStatus
.
PQPort
Trả về cổng kèo bóng đá pháp hoạt động.
char *pqport (const pgconn *Conn);
Nếu nhiều cổng được chỉ định trong các tham số kèo bóng đá pháp,PQPort
Trả về cổng thực sự được kèo bóng đá pháp với.
PQPort
returnnull
NếuConn
Đối số lànull
. Mặt khác, nếu có lỗi tạo ra thông tin cổng (có lẽ nếu kèo bóng đá pháp chưa được thiết lập đầy đủ hoặc có lỗi), nó sẽ trả về một chuỗi trống.
Nếu nhiều cổng được chỉ định trong các tham số kèo bóng đá pháp, không thể dựa vào kết quả củaPQPort
Cho đến khi kèo bóng đá pháp được thiết lập. Trạng thái của kèo bóng đá pháp có thể được kiểm tra bằng hàmpqstatus
.
PQTTY
Trả về bản gỡ lỗittycủa kèo bóng đá pháp. (Đ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 kèo bóng đá pháp vẫn cho khả kèo bóng đá pháp 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 kèo bóng đá pháp.
char *pqoptions (const pgconn *Conn);
Các chức kèo bóng đá pháp 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 kèo bóng đá pháp.
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 kèo bóng đá pháp không đồng bộ:Connection_ok
vàConnection_Bad
. Một kèo bóng đá pháp tốt với cơ sở dữ liệu có trạng tháiConnection_ok
. Một nỗ lực kèo bóng đá pháp thất bại được báo hiệu bởi trạng tháiConnection_Bad
. Thông thường, kèo bóng đá pháp OK sẽ vẫn như vậy cho đến khipqfinish
, nhưng lỗi truyền thông có thể dẫn đến kèo bóng đá pháp thay đổi thànhConnection_Bad
sớ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 các mã kèo bóng đá pháp khác có thể được trả về.
PQTransactionStatus
Trả về kèo bóng đá pháp chuyển đổi hiện tại của máy chủ.
kèo bóng đá pháp 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 kèo bóng đá pháp xấu.pqtrans_active
chỉ được báo cáo khi một 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 kèo bóng đá pháp 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ặcnull
Nếu tham số không được biết.
Tham số được báo cáo kể từ 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_datetimes
vàStandard_Conforming_Strings
. (server_encoding
, timezone
vàinteger_datetimes
không được báo cáo bởi các bản phát hành trước 8.0;Standard_Conforming_Strings
không được báo cáo bởi các bản phát hành trước 8.1;IntervalStyle
Không được báo cáo bởi các bản phát hành trước 8.4;application_name
Khô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_encoding
vàinteger_datetimes
Khô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_version
vàclient_encoding
Dù sao. Các ứng dụng được khuyến khích sử dụngPQParameterstatus
thay vìad hocMã để xác định các giá trị này. (Tuy nhiên, hãy cẩn thận với kèo bóng đá pháp Pre-3.0, thay đổiclient_encoding
Viaset
Sau khi kèo bóng đá pháp 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ễ dàng hơn nhiều để 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ú kèo bóng đá 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ế chỉ vào bộ lưu trữ có thể thay đổi được liên kèo bóng đá pháp vớiPGConn
Cấ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 (kèo bóng đá pháp xấu).PostgreSQL7.4 hoặc các máy chủ sau đó; Máy chủ trước 7.4 chỉ hỗ trợ giao thức 2.0.libpq.)
PQServerVersion
Trả về một số nguyên đại diện cho phiên bản máy chủ.
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 kèo bóng đá pháp. Kết quả được hình thành bằng cách nhân số phiên bản chính của máy chủ với 10000 và thêm số phiên bản nhỏ.
Trước phiên bản chính 10,PostgreSQLđã sử dụng số phiên bản ba phần trong đó hai phần đầu tiên cùng nhau đại diện cho phiên bản chính. Cho các phiên bản đó,PQServerVersion
Sử dụng hai chữ số cho mỗi phần; Ví dụ: Phiên bản 9.1.5 sẽ được trả lại là 90105 và phiên bản 9.2.0 sẽ được trả về là 90200.
Do đó, với mục đích xác định khả năng tương thích tính năng, các ứng dụng nên chia kèo bóng đá pháp quả củaPQServerVersion
bởi 100 không 10000 để xác định số phiên bản chính logic. Trong tất cả các chuỗi phát hành, chỉ có hai chữ số cuối cùng khác nhau giữa các bản phát hành nhỏ (bản phát hành sửa lỗi).
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 kèo bóng đá pháp.
char *pqerrormessage (const pgconn *Conn);
Gần như tất cảlibpqCác chức kèo bóng đá pháp sẽ đặt tin nhắn chopqerrormessage
Nếu họ thất bại. Lưu ý rằng bằnglibpqquy ước, một người không trốngpqerrormessage
kèo bóng đá pháp 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 kèo bóng đá pháp quả trực tiếp.PGConn
Xử lý được chuyển chopqfinish
. Chuỗi kèo bóng đá pháp quả không nên được dự kiến sẽ giữ nguyên trong các hoạt động trênPGConn
Cấu trúc.
PQSocket
Lấy số lượng mô tả tệp của ổ cắm kèo bóng đá pháp vào máy chủ. Một mô tả hợp lệ sẽ lớn hơn hoặc bằng 0;
int pqsocket (const pgconn *Conn);
PQBackendPid
Trả về quy trìnhid(pid)của quy trình phụ trợ xử lý kèo bóng đá pháp 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áo
Tin 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 kèo bóng đá pháp yêu cầu mật khẩu, nhưng không có sẵn. Trả về false (0) nếu không.
28888_28942
Chức năng này có thể được áp dụng sau khi kèo bóng đá pháp 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ề true (1) Nếu phương thức xác thực kèo bóng đá pháp sử dụng mật khẩu. Trả về false (0) nếu không.
29459_29512
Hàm này có thể được áp dụng sau khi cố gắng kèo bóng đá pháp 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.
Các chức năng sau trả về thông tin liên quan đến SSL. Thông tin này thường không thay đổi sau khi kèo bóng đá pháp được thiết lập.
PQSSlinuse
Trả về đúng (1) Nếu kèo bóng đá pháp sử dụng SSL, FALSE (0) nếu không.
int pqsslinuse (const pgconn *Conn);
PQSSlattribution
Trả về thông tin liên quan đến SSL về kèo bóng đá pháp.
30558_30637
Danh sách các thuộc tính có sẵn khác nhau tùy thuộc vào thư viện SSL đang được sử dụng và loại kèo bóng đá pháp. Nếu một thuộc tính không khả dụng, hãy trả về null.
Các thuộc tính sau đây thường có sẵn:
Thư viện
Tên của việc triển khai SSL đang sử dụng. (Hiện tại, chỉ"OpenSSL"
được triển khai)
Giao thức
Phiên bản SSL/TLS đang được sử dụng. Các giá trị chung là"TLSV1"
, "TLSV1.1"
và"TLSV1.2"
, nhưng việc triển khai có thể trả về các chuỗi khác nếu một số giao thức khác được sử dụng.
key_bits
Số lượng các bit khóa được sử dụng bởi thuật toán mã hóa.
mật mã
Một tên ngắn của Ciphersuite được sử dụng, ví dụ:"DHE-RSA-DES-CBC3-SHA"
. Các tên được cụ thể cho mỗi triển khai SSL.
nén
Trả về "BẬT" Nếu nén SSL được sử dụng, nếu không nó sẽ trả về "TẮT".
PQSSlattributenames
Trả về một mảng tên thuộc tính SSL có sẵn. Mảng bị chấm dứt bởi một con trỏ null.
const char * const * pqsslattributenames (const pgconn * Conn);
PQSSLStruct
32956_33042
33075_33142
Cấu trúc có sẵn phụ thuộc vào việc sử dụng SSL đang sử dụng. Đối với OpenSSL, có một cấu trúc, có sẵn dưới tên "OpenSSL" và nó trả về một con trỏ cho OpenSSLSSL
Cấu trúc. Để sử dụng chức kèo bóng đá pháp này, mã dọc theo các dòng sau có thể được sử dụng:
#include <libpq-fe.h
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 để biết thông tin về cấu trúc này.
PQGetSSL
Trả về cấu trúc SSL được sử dụng trong kèo bóng đá pháp hoặc null nếu SSL không sử dụng.
VOID *PQGETSSL (const pgconn *Conn);
Hàm này tương đương vớiPQSSLStruct (Conn, "OpenSSL")
. Nó không nên được sử dụng trong các ứng dụng mới, bởi vì cấu trúc được trả lại là cụ thể cho OpenSSL và sẽ không có sẵn nếu việc triển khai SSL khác được sử dụng.PQSSlinuse
Thay vào đó, và để biết thêm chi tiết về kèo bóng đá pháp, sử dụngPQSSlattribution
.