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

32.2. Chức năng trạng thái kèo bóng đá c1#

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ó.

tip

libpqLập trình viên ứng dụng nên cẩn thận để duy trìPGConnTrừ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ộPGConnTrường sử dụnglibpq-int.hkhô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, PQPortPQPassCó 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);

PQPassSẽ 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ủaPQPassCho đế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ảhosthostaddr14574_14583PQHOSTsẽ trả vềhostThô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,PQHOSTTrả về máy chủ thực sự được kèo bóng đá c1 với.

PQHOSTreturnnullNế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ủaPQHOSTCho đế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 quahostaddrtham số.

char *pqhostaddr (const pgconn *Conn);

PQHOSTADDRreturnnullNế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,PQPortTrả về cổng thực sự được kèo bóng đá c1 với.

PQPortreturnnullNế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ủaPQPortCho đế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ặcnullNế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_okConnection_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_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 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_activechỉ đượ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.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.

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_onlyin_hot_standbyKhông được báo cáo bởi các bản phát hành trước 14;scram_iterationsKhô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_encodingInteger_DatetimesKhô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ớiPGConnCấ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 đó,PQServerVersion27279_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ủaPQServerVersion27639_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_28428pqerrormessageNếu họ thất bại. Lưu ý rằng bằnglibpqquy ước, một người không trốngpqerrormessagekè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 đá c1PGConnTay 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ênPGConnCấ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áoTin 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""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ệnThuộ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ạngConn36369_36518libpq_has_ssl_l Library_detectionMacro 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ếuConn37193_37292libpqđược biên dịch mà không có bất kỳ hỗ trợ SSL nào. Nếu nhưConnkhô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ênOpenSSLvà nó trả lại một con trỏ thànhOpenSSL'sSSLCấ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ọiPQSSlinuseThay vào đó, và để biết thêm chi tiết về kèo bóng đá c1, sử dụngPQSSlattribution.

Gửi hiệu chỉnh

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.