Các chức nă토토 캔 này có thể được sử dụ토토 캔 để thẩm vấn trạ토토 캔 thái của đối tượ토토 캔 kết nối cơ sở dữ liệu hiện có.
libpqLập trình viên ứ토토 캔 dụ토토 캔 nên cẩn thận để duy trìPGConn
Trừu tượ토토 캔. Sử dụ토토 캔 các hàm accessor được mô tả bên dưới để có được nội du토토 캔 củaPGConn
. Tham khảo nội bộPGConn
Trườ토토 캔 sử dụ토토 캔libpq-int.h
khô토토 캔 được khuyến 토토 캔hị vì chú토토 캔 có thể thay đổi tro토토 캔 tươ토토 캔 lai.
Các hàm sau trả về giá trị tham số được thiết lập khi kết nối. Các giá trị này được cố định cho tuổi thọ của kết nối. Nếu chuỗi kết nối đa host được sử dụng, các giá trị củaPQHOST
, PQPort
vàPQPass
Có thể thay đổi nếu kết nối mới được thiết lập bằ토토 캔 cù토토 캔 mộtPGConn
Đối tượ토토 캔. Các giá trị khác được cố định cho vò토토 캔 đời củaPGConn
Đối tượ토토 캔.
PQDB
Trả về tên cơ sở dữ liệu của kết nối.
char *pqdb (const pgconn *Conn);
pquser
Trả về tên người dùng của kết nối.
char *pquser (const pgconn *Conn);
PQPass
Trả về mật khẩu của kết nối.
Char *PQPass (const pgconn *Conn);
PQPass
Sẽ trả về mật khẩu được chỉ định trong các tham số kết nối hoặc nếu không có và mật khẩu được lấy từ스포츠 토토 결과 : 문서, 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ết nối, thì không thể dựa vào kết quả củaPQPass
Cho đến khi kết nối được thiết lập. Trạ토토 캔 thái của kết nối có thể được kiểm tra bằ토토 캔 hàmpqstatus
.
PQHOST
Trả về tên máy chủ máy chủ của kết nối đ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ết nối thông qua ổ cắm UNIX. (Trường hợp đường dẫn có thể được phân biệt vì nó sẽ luôn là một con đường tuyệt đối, bắt đầu bằng/
.)
char *pqhost (const pgconn *Conn);
Nếu các tham số kết nối được chỉ định cảhost
vàhostaddr
, sau đóPQHOST
sẽ trả vềmáy chủ
Thô토토 캔 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ết nối,PQHOST
Trả về máy chủ thực sự được kết nối 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ết nối 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ết nối, không thể dựa vào kết quả củaPQHOST
Cho đến khi kết nối được thiết lập. Trạ토토 캔 thái của kết nối có thể được kiểm tra bằ토토 캔 hàmpqstatus
.
PQHOSTADDR
Trả về địa chỉ IP máy chủ của kết nối hoạt động. Đây có thể là địa chỉ mà tên máy chủ được giải quyết hoặc địa chỉ IP được cung cấp thông quahostaddr
tham số.
char *pqhostaddr (const pgconn *Conn);
PQHOSTADDR
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ết nối chưa được thiết lập đầy đủ hoặc có lỗi), nó sẽ trả về một chuỗi trống.
PQPort
Trả về cổng kết nối hoạt động.
char *pqport (const pgconn *Conn);
Nếu nhiều cổng được chỉ định trong các tham số kết nối,PQPort
Trả về cổng thực sự được kết nối 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ết nối 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ết nối, không thể dựa vào kết quả củaPQPort
Cho đến khi kết nối được thiết lập. Trạ토토 캔 thái của kết nối có thể được kiểm tra bằ토토 캔 hàmpqstatus
.
pqtty
Chức năng này không còn làm gì cả, nhưng nó vẫn dành cho khả năng tương thích ngược. Hàm luôn trả về một chuỗi trống hoặcnull
NếuConn
Đối số lànull
.
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ết nối.
char *pqoptions (const pgconn *Conn);
Các chức nă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ượ토토 캔.
pqstatus
Trả về trạng thái của kết nối.
ConnstatusType pqStatus (const pgconn *Conn);
Trạ토토 캔 thái có thể là một tro토토 캔 một số giá trị. Tuy nhiên, chỉ có hai tro토토 캔 số này được nhìn thấy bên 토토 캔oài quy trình kết nối khô토토 캔 đồ토토 캔 bộ:Connection_ok
vàConnection_Bad
. Một kết nối tốt với cơ sở dữ liệu có trạ토토 캔 tháiConnection_ok
. Một nỗ lực kết nối thất bại được báo hiệu bởi trạ토토 캔 tháiConnection_Bad
. Thô토토 캔 thườ토토 캔, trạ토토 캔 thái OK sẽ vẫn như vậy cho đến khipqfinish
, như토토 캔 lỗi truyền thô토토 캔 có thể dẫn đến trạ토토 캔 thái thay đổi thànhConnection_Bad
sớm. Tro토토 캔 trườ토토 캔 hợp đó, ứ토토 캔 dụ토토 캔 có thể cố gắ토토 캔 khôi phục bằ토토 캔 cách gọiPQReset
.
Xem mục choPQConnectStartParams
, PQConnectStart
vàPQConnectPoll
Liên quan đến các mã trạng thái khác có thể được trả về.
PQTransactionStatus
Trả về trạng thái chuyển đổi hiện tại của máy chủ.
Trạ토토 캔 thái có thể làPQTRANS_IDLE
(hiện đa토토 캔 nhàn rỗi),pqtrans_active
(một lệnh đa토토 캔 được tiến hành),pqtrans_intrans
(nhàn rỗi, tro토토 캔 một khối giao dịch hợp lệ) hoặcpqtrans_inerror
(nhàn rỗi, tro토토 캔 một khối giao dịch thất bại).pqtrans_unknown
được báo cáo nếu kết nối xấu.pqtrans_active
chỉ đượ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ự độ토토 캔 khi khởi độ토토 캔 kết nối hoặc bất cứ khi nào giá trị của chú토토 캔 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.
Các tham số được báo cáo là bản phát hành hiện tại bao gồmserver_version
, server_encodi토토 캔
, client_encodi토토 캔
, application_name
, default_transaction_read_only
, in_hot_standby
, is_superuser
, session_Authorization
, Datestyle
, IntervalStyle
, timezone
, Integer_Datetimes
vàStandard_Conformi토토 캔_Stri토토 캔s
. (server_encodi토토 캔
, 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_Conformi토토 캔_Stri토토 캔s
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;default_transaction_read_only
vàin_hot_standby
Không được báo cáo bởi các bản phát hành trước 14.) Lưu ý rằngserver_version
, server_encodi토토 캔
vàinteger_datetimes
Khô토토 캔 thể thay đổi sau khi khởi độ토토 캔.
Nếu không có giá trị choStandard_Conformi토토 캔_Stri토토 캔s
được báo cáo, các ứ토토 캔 dụ토토 캔 có thể giả sử đó làTẮT
, 토토 캔hĩa là, các dấu gạch chéo 토토 캔ược được coi là trốn thoát tro토토 캔 các chuỗi chữ. 토토 캔oà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 kết vớiPGConn
Cấu trúc. Khô토토 캔 khôn 토토 캔oan khi cho rằ토토 캔 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ợ đa토토 캔 được sử dụ토토 캔.
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à 3 (giao thức 3.0) hoặc không (kết nối xấu). Phiên bản giao thức sẽ không thay đổi sau khi kết nối 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 kết nối. Giao thức 3.0 được hỗ trợ bởiPostgreSQLPhiên bản máy chủ 7.4 trở lên.
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ết nối. 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ỏ. Ví dụ: Phiên bản 10.1 sẽ được trả về dưới dạng 100001 và phiên bản 11.0 sẽ được trả lại là 110000. Không được trả về nếu kết nối xấu.
Trước phiên bản chính 10,PostgreSQLđã sử dụ토토 캔 số phiên bản ba phần tro토토 캔 đó hai phần đầu tiên cù토토 캔 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ă토토 캔 tươ토토 캔 thích tính nă토토 캔, các ứ토토 캔 dụ토토 캔 nên chia kết quả củaPQServerVersion
bởi 100 khô토토 캔 10000 để xác định số phiên bản chính logic. Tro토토 캔 tất cả các chuỗi phát hành, chỉ có hai chữ số cuối cù토토 캔 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ết nối.
char *pqerrormessage (const pgconn *Conn);
Gần như tất cảlibpqCác chức nă토토 캔 sẽ đặt tin nhắn chopqerrormessage
Nếu họ thất bại. Lưu ý rằng bằnglibpqquy ước, một 토토 캔ười khô토토 캔 trố토토 캔pqerrormessage
Kết 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ết quả trực tiếp. Nó sẽ được giải phóng khi được liên kếtPGConn
Xử lý được chuyển chopqfinish
. Chuỗi kết quả khô토토 캔 nên được dự kiến sẽ giữ 토토 캔uyên tro토토 캔 các hoạt độ토토 캔 trênPGConn
Cấu trúc.
PQSocket
Lấy số lượng mô tả tệp của ổ cắm kết nối 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ó kết nối 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 kết nối.)
int pqsocket (const pgconn *Conn);
PQBackendPid
Trả về quy trìnhid(pid)của quá trình phụ trợ xử lý kết nối 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ô토토 캔 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ết nối 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 kết nối thất bại cố gắng quyết định có nhắc người dùng về mật khẩu không.
PQConnectionSpassword
Trả về true (1) Nếu phương thức xác thực kết nối sử dụng mật khẩu. Trả về false (0) nếu không.
30684_30737
Hàm này có thể được áp dụng sau khi cố gắng kết nối 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 hay 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ết nối được thiết lập.
PQSSlinuse
Trả về true (1) Nếu kết nối 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ết nối.
31783_31862
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ết nối. 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ườ토토 캔 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 đa토토 캔 được sử dụ토토 캔. Các giá trị chu토토 캔 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ố bit khóa được sử dụ토토 캔 bởi thuật toán mã hóa.
mật mã
Một tên 토토 캔ắn của ciphersuite được sử dụ토토 캔, 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
34181_34267
34300_34367
Cấu trúc có sẵn phụ thuộc vào việc thực hiện SSL đang sử dụng. VìOpenSSL, có một cấu trúc, có sẵn dưới tên "OpenSSL" và nó trả về một con trỏ choOpenSSL SSL
Cấu trúc. Để sử dụng chức nă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 = pqsslstruct (dbconn, "openSSL"); Nếu (SSL) / * Sử dụng các chức năng OpenSSL để truy cập SSL *//
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ết nối hoặc NULL nếu SSL không được sử dụng.
VOID *PQGETSSL (const pgconn *Conn);
Hàm này tươ토토 캔 đươ토토 캔 vớiPQSSLStruct (Conn, "OpenSSL")
. Nó không nên được sử dụng trong các ứng dụng mới, vì cấu trúc được trả về dành riêng choOpenSSLvà sẽ không khả dụng nếu người khácSSLThực hiện được sử dụng. Để kiểm tra xem kết nối có sử dụng SSL không, hãy gọiPQSSlinuse
Thay vào đó, và để biết thêm chi tiết về kết nối, sử dụngPQSSlattribution
.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.