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 đá c1 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 chức năng sau trả về các giá trị tham số được thiết lập tại kèo bóng đá c1. Các giá trị này được cố định cho tuổi thọ của kèo bóng đá c1. Nếu chuỗi kèo bóng đá c1 đa host được sử dụng, các giá trị củaPQHOST
, PQPort
vàPQPass
Có thể thay đổi nếu kèo bóng đá c1 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 đá c1.
char *pqdb (const pgconn *Conn);
PQUSER
#Trả về tên người dùng của kèo bóng đá c1.
char *pquser (const pgconn *Conn);
PQPass
#Trả về mật khẩu của kèo bóng đá c1.
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 đá c1 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 đá c1, thì không thể dựa vào kết quả củaPQPass
Cho đến khi kèo bóng đá c1 được thiết lập. Trạng thái của kèo bóng đá c1 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 đá c1 đ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 đá c1 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/
.)
14402_14439
Nếu các tham số kèo bóng đá c1 được chỉ định cảhost
vàhostaddr
14574_14583PQHOST
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 đá c1,PQHOST
Trả về máy chủ thực sự được kèo bóng đá c1 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 đá c1 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 đá c1, không thể dựa vào kết quả củaPQHOST
Cho đến khi kèo bóng đá c1 được thiết lập. Trạng thái của kèo bóng đá c1 có thể được kiểm tra bằng hàmpqstatus
.
PQHOSTADDR
#Trả về địa chỉ IP máy chủ của kèo bóng đá c1 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èo bóng đá c1 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èo bóng đá c1 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 đá c1,PQPort
Trả về cổng thực sự được kèo bóng đá c1 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 đá c1 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 đá c1, không thể dựa vào kết quả củaPQPort
Cho đến khi kèo bóng đá c1 được thiết lập. Trạng thái của kèo bóng đá c1 có thể được kiểm tra bằng hàmpqstatus
.
pqtty
#Hàm này không còn làm gì cả, nhưng nó vẫn còn cho khả kèo bóng đá c1 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èo bóng đá c1.
char *pqoptions (const pgconn *Conn);
Các chức kèo bóng đá c1 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ên19416_19424
Đối tượng.
pqstatus
#Trả về trạng thái của kèo bóng đá c1.
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 đá c1 không đồng bộ:Connection_ok
vàConnection_Bad
. Một kèo bóng đá c1 tốt với cơ sở dữ liệu có trạng tháiConnection_ok
. Một nỗ lực kèo bóng đá c1 thất bại được báo hiệu bởi trạng tháiConnection_Bad
. Thông thường, kèo bóng đá c1 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 đá c1 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 đá c1 khác có thể được trả về.
PQTransactionStatus
#Trả về kèo bóng đá c1 chuyển đổi hiện tại của máy chủ.
kèo bóng đá c1 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 đá c1 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ự động khi khởi động kèo bóng đá c1 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.
Các tham số được báo cáo là bản phát hành hiện tại bao gồm:
application_name |
is_superuser |
client_encoding |
scram_iterations |
Datestyle |
server_encoding |
Default_Transaction_Read_only |
server_version |
in_hot_standby |
session_Authorization |
integer_datetimes |
Standard_Conforming_Strings |
IntervalStyle |
timezone |
(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;scram_iterations
Không được báo cáo bởi các bản phát hành trước 16.) Lưu ý rằngserver_version
, server_encoding
vàInteger_Datetimes
Không thể thay đổi sau khi khởi động.
Nếu không có giá trị cho24708_24737
đượ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 kèo bóng đá c1 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
#25590_25646
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èo bóng đá c1 xấu). Phiên bản giao thức sẽ không thay đổi sau khi kèo bóng đá c1 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èo bóng đá c1. 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èo bóng đá c1. 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èo bóng đá c1 xấu.
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
27279_27410
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 đá c1 quả củaPQServerVersion
27639_27801
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 đá c1.
char *pqerrormessage (const pgconn *Conn);
Gần như tất cảlibpq28392_28428pqerrormessage
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 đá c1 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 đá c1 quả trực tiếp. Nó sẽ được giải phóng khi được liên kèo bóng đá c1PGConn
Tay cầm được chuyển chopqfinish
. Chuỗi kèo bóng đá c1 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 đá c1 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èo bóng đá c1 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èo bóng đá c1.)
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 đá c1 này.
int pqbackendPid (const pgconn *Conn);
Phần phụ trợPID30439_30497Thô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 đá c1 yêu cầu mật khẩu, nhưng không có sẵn. Trả về false (0) nếu không.
31244_31298
Hàm này có thể được áp dụng sau khi kèo bóng đá c1 thất bại cố gắng quyết định có nhắc người dùng để nhận mật khẩu không.
PQConnectionSpassword
#Trả về đúng (1) Nếu phương thức xác thực kèo bóng đá c1 sử dụng mật khẩu. Trả về false (0) nếu không.
31879_31932
Hàm này có thể được áp dụng sau khi cố gắng kèo bóng đá c1 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.
#Trả về đúng (1) Nếu phương thức xác thực kèo bóng đá c1 được sử dụng GSSAPI. Trả về false (0) nếu không.
32521_32572
Hàm này có thể được áp dụng để phát hiện xem kèo bóng đá c1 có được xác thực với GSSAPI.
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 đá c1 được thiết lập.
PQSSlinuse
#Trả về true (1) Nếu kèo bóng đá c1 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 đá c1.
33681_33760
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 đá c1. Trả về NULL nếu kèo bóng đá c1 không sử dụng SSL hoặc tên thuộc tính được chỉ định không được xác định cho thư viện đang sử dụng.
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ố 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"
35182_35236
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".
ALPN
Giao thức ứng dụng được chọn bởi phần mở rộng của TLS ứng dụng (ALPN). Giao thức duy nhất được libpq hỗ trợ làPOSTGRESQL
, vì vậy điều này chủ yếu hữu ích cho việc kiểm tra xem máy chủ có hỗ trợ ALPN hay không. Chuỗi trống nếu ALPN không được sử dụng.
như một trường hợp đặc biệt,Thư viện
Thuộc tính có thể được truy vấn mà không cần kèo bóng đá c1 bằng cách truyền NULL dưới dạngConn
Đối số. kèo bóng đá c1 quả sẽ là tên thư viện SSL mặc định hoặc null nếulibpqđược biên dịch mà không có bất kỳ hỗ trợ SSL nào. (TrướcPostgreSQLPhiên bản 15, vượt qua NULL dưới dạngConn
36369_36518libpq_has_ssl_l Library_detection
Macro tính kèo bóng đá c1.)
PQSSlattributenames
#Trả về một mảng tên thuộc tính SSL có thể được sử dụng trongpqsslattribution ()
. Mảng bị chấm dứt bởi một con trỏ null.
const char * const * pqsslattributenames (const pgconn * Conn);
nếuConn
37193_37292libpqđược biên dịch mà không có bất kỳ hỗ trợ SSL nào. Nếu nhưConn
không phải là NULL, các thuộc tính có sẵn cho thư viện SSL được sử dụng cho kèo bóng đá c1 được trả về hoặc một danh sách trống nếu kèo bóng đá c1 không được mã hóa.
PQSSLSTRuction
#37829_38055
38088_38155
Cấu trúc có sẵn phụ thuộc vào việc sử dụng SSL đang sử dụng. VìOpenSSL, Có một cấu trúc, có sẵn dưới tênOpenSSL
và nó trả lại một con trỏ thànhOpenSSL'sSSL
Cấu trúc. Để sử dụng chức kèo bóng đá c1 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 kèo bóng đá c1 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èo bóng đá c1 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, 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èo bóng đá c1 có sử dụng SSL không, hãy gọiPQSSlinuse
Thay vào đó, và để biết thêm chi tiết về kèo bóng đá c1, 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 phù hợp Kinh nghiệm của bạn với tính kèo bóng đá c1 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.