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 / 7.3 / 7.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá cúp c2 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

31.1. Điều khiển kèo bóng đá cúp c2 cơ sở dữ liệu Chức năng

Các chức năng sau liên quan đến việc tạo kèo bóng đá cúp c2 với APostgreSQLMáy chủ phụ trợ. MỘT Chương trình ứng dụng có thể mở một số kèo bóng đá cúp c2 phụ trợ tại một lần. (Một lý do để làm điều đó là truy cập nhiều hơn một cơ sở dữ liệu.) Mỗi ​​kèo bóng đá cúp c2 được biểu diễn bằng mộtPGConnđối tượng, được lấy từ chức kèo bóng đá cúp c2PQConnectDB, PQConnectDBParamshoặcPQSetDbLogin. Lưu ý rằng kèo bóng đá cúp c2 chức năng này sẽ Luôn trả về một con trỏ đối tượng không null, trừ khi có lẽ có quá ít bộ nhớ thậm chí để phân bổPGConnĐối tượng. ThePQStatusHàm nên được gọi để kiểm tra Trả về giá trị cho kèo bóng đá cúp c2 thành công trước khi các truy vấn được gửi thông qua đối tượng kèo bóng đá cúp c2.

Cảnh báo

11678_11967EXECTừ quá trình con thực thi mới là an toàn.

Lưu ý:Trên Windows, có một cách để cải thiện Hiệu suất nếu một kèo bóng đá cúp c2 cơ sở dữ liệu duy nhất liên tục bắt đầu và tắt máy. Trong nội bộ, libpq gọiwsastartup ()wsacleanup ()cho kèo bóng đá cúp c2 khởi động và Tắt, tương ứng.wsastartup ()Tăng một cửa sổ bên trong Số lượng tham chiếu thư viện bị giảm bởiwsacleanup (). Khi số lượng tham chiếu là Chỉ một, gọiwsacleanup ()Giải phóng tất cả kèo bóng đá cúp c2 tài nguyên và tất cả kèo bóng đá cúp c2 DLL đều được dỡ xuống. Đây là một Hoạt động đắt tiền. Để tránh điều này, một ứng dụng có thể gọi thủ côngwsastartup ()Vì vậy Tài nguyên sẽ không được giải phóng khi kèo bóng đá cúp c2 cơ sở dữ liệu cuối cùng được đóng.

PQConnectDBParams

Tạo kèo bóng đá cúp c2 mới với máy chủ cơ sở dữ liệu.

13394_13487

Hàm này mở kèo bóng đá cúp c2 cơ sở dữ liệu mới bằng cách sử dụng tham số được lấy từ hainull-kèo bóng đá cúp c2 thúc mảng. Đầu tiên,Từ khóa, được định nghĩa là một mảng chuỗi, Mỗi người là một từ khóa. Thứ hai,Giá trị, đưa ra giá trị cho mỗi từ khóa. Không giống nhưPQSetDbLoginbên dưới, tập hợp tham số có thể được mở rộng mà không cần thay đổi Chữ ký chức năng, vì vậy sử dụng chức năng này (hoặc kèo bóng đá cúp c2 chất tương tự không chặnPQConnectStartParams14177_14192) được ưu tiên cho mới Lập trình ứng dụng.

khiexpand_dbnamelà khác không, Thedbnamegiá trị từ khóa là được phép được công nhận làConninfoChuỗi. Xem bên dưới cho chi tiết.

Mảng được truyền có thể trống để sử dụng tất cả kèo bóng đá cúp c2 mặc định tham số hoặc có thể chứa một hoặc nhiều cài đặt tham số. Chúng nên được khớp với chiều dài. Xử lý sẽ dừng lại với cuối cùng khôngnullphần tử củaTừ khóamảng.

kèo bóng đá cúp c2 từ khóa tham số hiện được công nhận là:

máy chủ

Tên của máy chủ để kèo bóng đá cúp c2 với. Nếu điều này bắt đầu với một chém, nó chỉ định giao tiếp miền đơn hơn hơn giao tiếp TCP/IP; Giá trị là tên của Thư mục trong đó tệp ổ cắm được lưu trữ. Các hành vi mặc định khihostkhông được chỉ định là kèo bóng đá cúp c2 với một miền Unix Ổ cắm trong/TMP(hoặc bất cứ điều gì Thư mục ổ cắm được chỉ định khiPostgreSQL15672_15785localhost.

hostaddr

Địa chỉ IP số của máy chủ để kèo bóng đá cúp c2 với. Cái này phải ở định dạng địa chỉ IPv4 tiêu chuẩn, ví dụ:172.28.40.9. Nếu máy của bạn Hỗ trợ IPv6, bạn cũng có thể sử dụng kèo bóng đá cúp c2 địa chỉ đó. Giao tiếp TCP/IP luôn được sử dụng khi không trống Chuỗi được chỉ định cho tham số này.

Sử dụnghostaddrthay vìmáy chủCho phép ứng dụng để tránh tra cứu tên máy chủ, có thể là quan trọng trong kèo bóng đá cúp c2 ứng dụng với kèo bóng đá cúp c2 ràng buộc thời gian. Tuy nhiên, một tên máy chủ được yêu cầu cho Kerberos, Phương pháp xác thực GSSAPI hoặc SSPI, cũng như vìxác minh-đầy đủSSL xác minh chứng chỉ. kèo bóng đá cúp c2 quy tắc sau đây là đã sử dụng:

  • nếuhostđược chỉ định không cóhostaddr, một máy chủ Tra cứu tên xảy ra.

  • nếuhostaddrIS được chỉ định mà không cómáy chủ,, giá trị chohostaddrCung cấp địa chỉ mạng máy chủ. kèo bóng đá cúp c2 Cố gắng sẽ thất bại nếu phương thức xác thực yêu cầu một tên máy chủ.

  • Nếu cả haihosthostaddrđược chỉ định, giá trị chohostaddrCung cấp địa chỉ mạng máy chủ. Giá trị chohostbị bỏ qua trừ khi Phương pháp xác thực yêu cầu nó, trong đó trường hợp nó sẽ được sử dụng làm tên máy chủ.

Lưu ý rằng xác thực có khả kèo bóng đá cúp c2 thất bại nếumáy chủkhông phải là tên của Máy chủ tại địa chỉ mạnghostaddr. Ngoài ra, lưu ý rằngmáy chủchứ không phảihostaddr​​được sử dụng để xác định kèo bóng đá cúp c2 trong~/.PGPass(xemPostgreSQL: Tài liệu:).

Không có tên máy chủ hoặc địa chỉ máy chủ,libpqSẽ kèo bóng đá cúp c2 sử dụng ổ cắm tên miền đơn vị cục bộ; hoặc trên máy Nếu không có ổ cắm tên miền Unix, nó sẽ cố gắng kèo bóng đá cúp c2 vớiLocalhost.

Cổng

19118_19252

dbname

Tên cơ sở kèo bóng đá cúp c2. Mặc định giống như Tên người dùng.

user

PostgreSQLNgười dùng Tên để kèo bóng đá cúp c2 như. Mặc định giống như Tên hệ điều hành của người dùng đang chạy ứng dụng.

Mật khẩu

Mật khẩu sẽ được sử dụng nếu máy chủ yêu cầu mật khẩu xác thực.

Connect_Timeout

Chờ tối đa để kèo bóng đá cúp c2, tính bằng giây (viết AS một chuỗi số nguyên thập phân). Không hoặc không được chỉ định có nghĩa là chờ vô thời hạn. Không nên sử dụng thời gian chờ dưới 2 giây.

client_encoding

Điều này đặtclient_encodingCấu hình tham số cho kèo bóng đá cúp c2 này. Ngoài các giá trị được chấp nhận bởi tùy chọn máy chủ tương ứng, Bạn có thể sử dụngAutođến Xác định đúng mã hóa từ địa phương hiện tại trong máy khách (lc_ctypeBiến môi trường trên kèo bóng đá cúp c2 hệ thống UNIX).

Tùy chọn

Thêm tùy chọn dòng lệnh để gửi đến máy chủ tại thời gian chạy. Ví dụ: đặt cái này thành-c geqo = offĐặt giá trị của phiên củageqotham số đếnTẮT. Cho một chi tiết Thảo luận về kèo bóng đá cúp c2 tùy chọn có sẵn, tham khảo ý kiếnChương 18.

application_name

Chỉ định giá trị choapplication_nameTham số cấu hình.

fallback_application_name

Chỉ định giá trị dự phòng choapplication_nameTham số cấu hình. Giá trị này sẽ được sử dụng nếu Không có giá trị nào được đưa ra choapplication_namethông qua kèo bóng đá cúp c2 tham số hoặcPGAPPNAMEBiến môi trường. Chỉ định một tên dự phòng là hữu ích trong kèo bóng đá cúp c2 chương trình tiện ích chung muốn thiết lập Tên ứng dụng mặc định nhưng cho phép nó được được ghi đè bởi người dùng.

Keepalives

Kiểm soát xem các khoản giữ TCP phía máy khách có phải là đã sử dụng. Giá trị mặc định là 1, có nghĩa là bật, nhưng bạn có thể Thay đổi điều này thành 0, có nghĩa là tắt, nếu không muốn. Tham số này bị bỏ qua cho các kèo bóng đá cúp c2 Được thực hiện thông qua ổ cắm miền Unix.

Keepalives_idle

23903_24270TCP_KeepidlehoặcTCP_Keepalive24375_24485

Keepalive_interval

Điều khiển số giây sau đó TCP thông điệp giữ lại không được thừa nhận bởi Máy chủ nên được truyền lại. Giá trị sử dụng bằng không hệ thống mặc định. Tham số này bị bỏ qua cho các kèo bóng đá cúp c2 được thực hiện thông qua ổ cắm tên miền Unix hoặc nếu Keepalives bị vô hiệu hóa. Nó chỉ được hỗ trợ trên các hệ thống trong đóTCP_KeepIntVLTùy chọn ổ cắm là Có sẵn, và trên Windows; Trên kèo bóng đá cúp c2 hệ thống khác, nó có không có tác dụng.

Keepalive_Count

Kiểm soát số lượng Keepalive TCP có thể bị mất trước khi kèo bóng đá cúp c2 của khách hàng với máy chủ là được coi là chết. Giá trị bằng 0 sử dụng hệ thống mặc định. Tham số này bị bỏ qua cho các kèo bóng đá cúp c2 được thực hiện thông qua một ổ cắm tên miền Unix, hoặc nếu giữ tàn tật. Nó chỉ được hỗ trợ trên các hệ thống trong đóTCP_KeepcntTùy chọn ổ cắm là có sẵn; Trên kèo bóng đá cúp c2 hệ thống khác, nó không có tác dụng.

tty

Bỏ qua (trước đây, nơi này được chỉ định là nơi để gửi đầu ra gỡ lỗi máy chủ).

SSLMode

Tùy chọn này xác định xem hoặc với cái gì Ưu tiên an toànSSLkèo bóng đá cúp c2 TCP/IP sẽ thương lượng với máy chủ. Có sáu chế độ:

vô hiệu hóa

Chỉ thử khôngSSLkèo bóng đá cúp c2

cho phép

Đầu tiên hãy thử khôngSSLkèo bóng đá cúp c2; Nếu điều đó thất bại, thử mộtSSLkèo bóng đá cúp c2

ưa thích(mặc định)

Đầu tiên hãy thửSSLkèo bóng đá cúp c2; Nếu điều đó Thất bại, hãy thử khôngSSLkèo bóng đá cúp c2

Yêu cầu

chỉ thử27831_27836kèo bóng đá cúp c2. Nếu một gốc Tệp CA có mặt, xác minh chứng chỉ trong giống như cáchXác minh-CAđã được chỉ định

Xác minh-CA

Chỉ thửSSLkèo bóng đá cúp c2 và xác minh rằng chứng chỉ máy chủ được cấp bởi một Cơ quan chứng chỉ đáng tin cậy (CA)

xác minh-đầy đủ

Chỉ thửSSLkèo bóng đá cúp c2, xác minh điều đó Chứng chỉ máy chủ được cấp bởi một người đáng tin cậyCAVà điều đó Tên máy chủ máy chủ phù hợp với giấy chứng nhận

xemPhần 31,17cho Mô tả chi tiết về cách kèo bóng đá cúp c2 tùy chọn này hoạt động.

SSLModebị bỏ qua cho Giao tiếp ổ cắm tên miền UNIX. Nếu nhưPostgreSQLđược biên dịch mà không có Hỗ trợ SSL, sử dụng Tùy chọnYêu cầu, Xác minh-CAhoặcxác minh-đầy đủsẽ gây ra lỗi, trong khi tùy chọnCho phépưa thíchsẽ được chấp nhận nhưnglibpqSẽ không thực sự cố gắngSSLkèo bóng đá cúp c2.

abitessl

Tùy chọn này không được ủng hộ ủng hộSSLModeCài đặt.

Nếu được đặt thành 1, mộtSSLkèo bóng đá cúp c2 với máy chủ là bắt buộc (điều này tương đương vớiSSLMode Yêu cầu).30438_30445Sau đó sẽ từ chối kèo bóng đá cúp c2 nếu máy chủ không chấp nhậnSSLkèo bóng đá cúp c2. Nếu như đặt thành 0 (mặc định),libpqSẽ thương lượng Loại kèo bóng đá cúp c2 với máy chủ (tương đương vớiSSLMode ưa thích). Tùy chọn này chỉ khả dụng nếu nhưPostgreSQLIS được biên dịch với hỗ trợ SSL.

SSLCERT

Tham số này chỉ định tên tệp của Chứng chỉ SSL của máy khách, thay thế mặc định~/.Postgresql/postgresql.crt. Cái này tham số bị bỏ qua nếu kèo bóng đá cúp c2 SSL không làm ra.

SSLKey

Tham số này chỉ định vị trí cho Khóa bí mật được sử dụng cho chứng chỉ máy khách. Nó có thể Một trong hai chỉ định tên tệp sẽ được sử dụng thay thế của mặc định~/.Postgresql/postgresql.keyhoặc nó có thể chỉ định một khóa thu được từ bên ngoài"Động cơ"(Động cơ làOpenSSLCó thể tải mô -đun). Một đặc tả động cơ bên ngoài nên bao gồm một tên động cơ phân tách đại tràng và một Định danh khóa cụ thể động cơ. Tham số này là bị bỏ qua nếu kèo bóng đá cúp c2 SSL không được thực hiện.

SSLROOTCERT

Tham số này chỉ định tên của một tệp chứa cơ quan chứng chỉ SSL (CA32747_32928~/.Postgresql/root.crt.

SSLCRL

Tham số này chỉ định tên tệp của SSL Danh sách thu hồi chứng chỉ (CRL). Giấy chứng nhận được liệt kê trong tệp này, nếu nó tồn tại, sẽ bị từ chối trong khi cố gắng xác thực máy chủ giấy chứng nhận. Mặc định là~/.Postgresql/root.crl.

Yêu cầu

Tham số này chỉ định người dùng hệ điều hành Tên của máy chủ, ví dụab tarpeer = postgres. Khi làm a kèo bóng đá cúp c2 ổ cắm tên miền Unix, nếu tham số này là đặt, máy khách kiểm tra ở đầu kèo bóng đá cúp c2 mà quá trình máy chủ đang chạy theo Tên người dùng được chỉ định; Nếu không, kèo bóng đá cúp c2 bị hủy bỏ với một lỗi. Tham số này có thể được sử dụng để cung cấp xác thực máy chủ tương tự như vậy Có sẵn với chứng chỉ SSL trên TCP/IP kèo bóng đá cúp c2. (Lưu ý rằng nếu ổ cắm tên miền Unix TRONG/TMP34466_34770PeerXác thực Phương pháp được thực hiện; nhìn thấyPhần 19.3.7.

krbsrvname

Tên dịch vụ của Kerberos sẽ sử dụng khi xác thực với Kerberos 5 hoặc GSSAPI. Điều này phải phù hợp với Tên dịch vụ được chỉ định trong cấu hình máy chủ cho xác thực Kerberos để thành công. (Xem thêmPhần 19.3.5Phần 19.3.3.)

35705_35713

Thư viện GSS để sử dụng để xác thực GSSAPI. Chỉ một Được sử dụng trên Windows. Đặt thànhGSSAPIĐể buộc libpq sử dụng Thư viện GSSAPI để xác thực thay vì SSPI mặc định.

Dịch vụ

Tên dịch vụ để sử dụng cho kèo bóng đá cúp c2 tham số bổ sung. Nó Chỉ định tên dịch vụ trongpg_service.confgiữ thêm tham số kèo bóng đá cúp c2. Điều này cho phép các ứng dụng Chỉ xác định tên dịch vụ nên tham số kèo bóng đá cúp c2 có thể được duy trì tập trung. Nhìn thấyPhần 31.15.

Nếu bất kỳ tham số nào không được xác định, thì tương ứng Biến môi trường (xemPhần 31.13) được kiểm tra. Nếu Biến môi trường cũng không được đặt, sau đó được chỉ định mặc định tích hợp được sử dụng.

nếuexpand_dbnamelà không khác Vàdbnamechứa=dấu, nó được lấy dưới dạngConninfoChuỗi theo cách tương tự như Nếu nó đã được truyền choPQConnectDB37306_37407Conninfochuỗi.

Nói chung, kèo bóng đá cúp c2 từ khóa được xử lý từ đầu kèo bóng đá cúp c2 mảng theo thứ tự chỉ mục. Hiệu quả của điều này là Khi kèo bóng đá cúp c2 từ khóa được lặp lại, giá trị được xử lý cuối cùng là giữ lại. Do đó, thông qua vị trí cẩn thận củadbnameTừ khóa, có thể Để xác định những gì có thể bị ghi đè bởi mộtConninfoChuỗi và những gì có thể không.

PQConnectDB

Tạo kèo bóng đá cúp c2 mới với máy chủ cơ sở dữ liệu.

PGConn *PQConnectDB (const char *ConnInfo);

Hàm này mở kèo bóng đá cúp c2 cơ sở dữ liệu mới bằng cách sử dụng tham số được lấy từ chuỗiConninfo.

38367_38567Từ khóa = value. Không gian xung quanh dấu hiệu bằng nhau là tùy chọn. Để viết một Giá trị trống hoặc giá trị chứa khoảng trống, bao quanh nó với Báo giá đơn, ví dụ:Từ khóa = 'a giá trị'. Báo giá đơn và dấu gạch chéo ngược trong giá trị Phải được thoát ra bằng một dấu gạch chéo ngược, tức là,\ '38977_38981.

kèo bóng đá cúp c2 từ khóa tham số hiện được nhận dạng là kèo bóng đá cúp c2 từ Giống như trên.

PQSetDbLogin

Tạo kèo bóng đá cúp c2 mới với máy chủ cơ sở dữ liệu.

PGCONN *PQSetDbLogin (const char *
                     const char *pgport,
                     const char *pgoptions,
                     const char *pgtty,
                     const char *dbname,
                     const char *đăng nhập,
                     const char *pwd);

Đây là tiền thân củaPQConnectDBVới một bộ cố định tham số. Nó có cùng chức năng ngoại trừ Thiếu tham số sẽ luôn luôn có kèo bóng đá cúp c2 giá trị mặc định. Viếtnull39903_40001

Nếudbnamechứa=dấu, nó được lấy dưới dạngConninfoChuỗi theo cách tương tự như Nếu nó đã được truyền choPQConnectDBvà kèo bóng đá cúp c2 tham số còn lại sau đó được áp dụng như trên.

PQSetDB

Tạo kèo bóng đá cúp c2 mới với máy chủ cơ sở dữ liệu.

PGConn *PQSetDB (char *pghost,
                char *pgport,
                char *pgoptions,
                char *pgtty,
                char *dbname);

Đây là một macro gọiPQSetDbLoginvới kèo bóng đá cúp c2 con trỏ null choĐăng nhậpPWDtham số. Nó được cung cấp cho Khả năng tương thích ngược với kèo bóng đá cúp c2 chương trình rất cũ.

PQConnectStartParams
PQConnectStart
PQConnectPoll

Tạo kèo bóng đá cúp c2 với máy chủ cơ sở dữ liệu trong A trong A cách không chặn.

PGConn *PQConnectStartParams (Const Char ** Từ khóa,
                             const char ** giá trị,
                             int expand_dbname);

Pgconn *pqconnectStart (const char *conninfo);

PostgrespollingStatusType PQConnectPoll (PGConn *Conn);

41727_42068PQConnectDBParamshoặcPQConnectDB, và vì vậy ứng dụng có thể Quản lý hoạt động này song song với kèo bóng đá cúp c2 hoạt động khác kèo bóng đá cúp c2 hoạt động.

với42322_42344,, kèo bóng đá cúp c2 cơ sở dữ liệu được thực hiện bằng cách sử dụng các tham số được thực hiện từTừ khóaGiá trịMảng và được điều khiển bởiexpand_dbname, như được mô tả ở trên choPQConnectDBParams.

vớiPQConnectStart, The kèo bóng đá cúp c2 cơ sở dữ liệu được thực hiện bằng các tham số được lấy từ chuỗiConninfonhư mô tả Trên choPQConnectDB.

KhôngPQConnectStartParamscũng khôngPQConnectStartcũng khôngPQConnectPollsẽ chặn, miễn là a Số lượng hạn chế được đáp ứng:

  • Thehostaddrhosttham số được sử dụng một cách thích hợp để đảm bảo rằng kèo bóng đá cúp c2 truy vấn tên và tên ngược không làm ra. Xem tài liệu của kèo bóng đá cúp c2 tham số này theoPQConnectDBParamsở trên Để biết chi tiết.

  • Nếu bạn gọi43674_43683,, đảm bảo rằng đối tượng luồng mà bạn theo dõi sẽ không khối.

  • Bạn đảm bảo rằng ổ cắm phù hợp trạng thái trước khi gọiPQConnectPoll, như mô tả dưới.

Lưu ý: Sử dụngPQConnectStartParamstương tự nhưPQConnectStarthiển thị dưới.

Để bắt đầu yêu cầu kèo bóng đá cúp c2 không chặn, hãy gọiConn = PQConnectStart ("Connection_info_String"). Nếu nhưConnlà null, sau đólibpqđã không thể phân bổ mớiPGConnCấu trúc. Nếu không, một hợp lệPGConnCon trỏ được trả về (mặc dù chưa đại diện cho một hợp lệ kèo bóng đá cúp c2 với cơ sở dữ liệu). Khi trở về từPQConnectStart, gọistatus = pqStatus (Conn). Nếu nhưtrạng tháibằngConnection_Bad, PQConnectStartđã thất bại.

nếuPQConnectStartThành công, giai đoạn tiếp theo là thăm dò ý kiếnlibpqđể nó có thể tiến hành Trình tự kèo bóng đá cúp c2. Sử dụngPQSocket (Conn)Để có được bộ mô tả của ổ cắm bên dưới kèo bóng đá cúp c2 cơ sở dữ liệu. Vòng lặp Do đó: nếuPQConnectPoll (Conn)Đã trả lại lần cuốipgres_polling_reading45561_45629select (), poll ()hoặc hàm hệ thống tương tự). Sau đó gọiPQConnectPoll (Conn)Một lần nữa. Ngược lại, nếuPQConnectPoll (Conn)Trả về lần cuốiPGRES_POLLING_WRITY, đợi cho đến khi ổ cắm đã sẵn sàng để viết, sau đó gọiPQConnectPoll (Conn)Một lần nữa. Nếu bạn có chưa gọiPQConnectPoll,, tức là, ngay sau cuộc gọi đếnPQConnectStart, hoạt động như thể nó kéo dài đã trả vềPGRES_POLLING_WRITY. Tiếp tục vòng lặp này cho đến khiPQConnectPoll (Conn)returnPGRES_POLLING_FAILED, chỉ ra Quy trình kèo bóng đá cúp c2 đã thất bại hoặcPGRES_POLLING_OK, Cho biết kèo bóng đá cúp c2 đã được thực hiện thành công.

Bất cứ lúc nào trong quá trình kèo bóng đá cúp c2, trạng thái của kèo bóng đá cúp c2 có thể được kiểm tra bằng cách gọipqstatus. Nếu cuộc gọi này trả vềConnection_Bad, sau đó quy trình kèo bóng đá cúp c2 đã thất bại; Nếu cuộc gọi trả vềConnection_ok47035_47154PQConnectPoll, được mô tả ở trên. Khác Các quốc gia cũng có thể xảy ra trong (và chỉ trong) Quy trình kèo bóng đá cúp c2 không đồng bộ. Những điều này chỉ ra giai đoạn hiện tại của thủ tục kèo bóng đá cúp c2 và có thể là hữu ích để cung cấp phản hồi cho người dùng làm ví dụ. Những cái này Trạng thái là:

Connection_started

chờ kèo bóng đá cúp c2 được thực hiện.

Connection_Made

kèo bóng đá cúp c2 OK; chờ gửi.

Connection_Awaiting_Response

Đang chờ phản hồi từ máy chủ.

48466_48486

nhận được xác thực; chờ đợi phụ trợ Khởi động để hoàn thành.

Connection_SSL_startup

Đàm phán mã hóa SSL.

Connection_SetEnv

Tham số điều khiển môi trường Cài đặt.

Lưu ý rằng, mặc dù kèo bóng đá cúp c2 hằng số này sẽ vẫn còn ( để duy trì khả năng tương thích), một ứng dụng nên Không bao giờ dựa vào những điều này xảy ra theo một thứ tự cụ thể, hoặc Tất cả, hoặc về tình trạng luôn là một trong số đó giá trị được ghi lại. Một ứng dụng có thể làm một cái gì đó như cái này:

Switch (pqstatus (Conn))

        Case Connection_started:
            Phản hồi = "kèo bóng đá cúp c2 ...";
            phá vỡ;

        Case Connection_Made:
            Phản hồi = "kèo bóng đá cúp c2 với máy chủ ...";
            phá vỡ;
.
.
.
        mặc định:
            Phản hồi = "kèo bóng đá cúp c2 ...";

TheConnect_Timeoutkèo bóng đá cúp c2 tham số bị bỏ qua khi sử dụngPQConnectPoll; nó là ứng dụng trách nhiệm quyết định xem một lượng quá mức của Thời gian đã trôi qua. Nếu không thì,PQConnectStarttheo sau làPQConnectPollVòng lặp tương đương vớiPQConnectDB.

Lưu ý rằng nếuPQConnectStartTrả về một người không null con trỏ, bạn phải gọipqfinish50521_50721

PQConnDefaults

Trả về các tùy chọn kèo bóng đá cúp c2 mặc định.

PQConnInFooption *PQConnDefaults (void);

Cấu trúc typedef

    từ khóa *từ khóa;   / * Từ khóa của tùy chọn */
    char *envvar;    / * Tên biến môi trường dự phòng */
    char *biên soạn;  / * Dự phòng được biên dịch trong giá trị mặc định */
    char *val;       / * Giá trị hiện tại của tùy chọn hoặc null */
    Nhãn char *;     / * Nhãn cho trường trong hộp thoại Connect */
    char *vua;  /* Cho biết cách hiển thị trường này
                          Trong một hộp thoại kèo bóng đá cúp c2. Giá trị là:
                          "" Hiển thị giá trị đã nhập như là
                          "*" Trường mật khẩu - ẩn giá trị
                          Tùy chọn gỡ lỗi "D" - không hiển thị theo mặc định */
    int phân tán;  / * Kích thước trường trong các ký tự cho hộp thoại */
 PQConnInFooption;

Trả về mảng tùy chọn kèo bóng đá cúp c2. Điều này có thể được sử dụng để Xác định tất cả có thểPQConnectDBTùy chọn và dòng điện của chúng giá trị mặc định. Giá trị trả về chỉ vào một mảngPQConninFooptionCấu trúc, kèo bóng đá cúp c2 thúc bằng một mục có nullTừ khóaCon trỏ. Con trỏ null là Trả lại nếu bộ nhớ không thể được phân bổ. Lưu ý rằng Giá trị mặc định hiện tại (ValTrường) sẽ phụ thuộc vào các biến môi trường và các biến khác bối cảnh. Người gọi phải coi dữ liệu tùy chọn kèo bóng đá cúp c2 là chỉ đọc.

Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách vượt qua nó đếnPQConninFofree. Nếu điều này không được thực hiện, một lượng nhỏ bộ nhớ bị rò rỉ cho mỗi Gọi đếnPQConnDefaults.

PQConninFopars

Trả về các tùy chọn kèo bóng đá cúp c2 phân tích cú pháp từ được cung cấp chuỗi kèo bóng đá cúp c2.

53014_53089

Phân tích chuỗi kèo bóng đá cúp c2 và trả về kết quả tùy chọn như một mảng; hoặc trả lạinullNếu có vấn đề với Chuỗi kèo bóng đá cúp c2. Chức năng này có thể được sử dụng để trích xuấtPQConnectDBTùy chọn trong Cung cấp chuỗi kèo bóng đá cúp c2. Giá trị trả về chỉ ra một mảngPQConninFooptionCấu trúc, kèo bóng đá cúp c2 thúc bằng một mục có nullTừ khóaCon trỏ.

Lưu ý rằng chỉ các tùy chọn được chỉ định rõ ràng trong Chuỗi sẽ có các giá trị được đặt trong mảng kèo bóng đá cúp c2 quả; KHÔNG Mặc định được chèn.

nếuerrmsgkhông phảinull, sau đó*errmsgđược đặt thành53972_53978Thành công, khác để Mộtmalloc'D chuỗi lỗi giải thích vấn đề. (Nó cũng có thể cho*errmsgđược đặt thànhnullvà chức kèo bóng đá cúp c2 trả vềnull; Điều này cho thấy một bộ nhớ ngoài tình trạng.)

Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách vượt qua nó đếnPQConnInfofree. Nếu điều này không được thực hiện, một số bộ nhớ bị rò rỉ cho mỗi cuộc gọi đếnPQConnInfopars. Ngược lại, Nếu xảy ra lỗi vàerrmsgIS khôngnull, Hãy chắc chắn giải phóng lỗi Chuỗi sử dụngPQFREEMEM.

pqfinish

Đóng kèo bóng đá cúp c2 với máy chủ. Cũng giải phóng bộ nhớ Được sử dụng bởiPGConnĐối tượng.

void pqfinish (pgconn *Conn);

Lưu ý rằng ngay cả khi kèo bóng đá cúp c2 máy chủ không cố (như được chỉ ra bởipqstatus), Ứng dụng nên gọipqfinishĐể giải phóng bộ nhớ được sử dụng bởiPGConnĐối tượng. ThePGConnCon trỏ không được sử dụng lại sau đópqfinishđã được gọi điện.

pqreset

Đặt lại kênh truyền thông cho máy chủ.

void pqreset (pgconn *Conn);

55879_56150

pqresetstart
pqresetpoll

Đặt lại kênh truyền thông cho máy chủ, trong A cách không chặn.

int pqresetstart (pgconn *Conn);

PostgrespollingStatusType PQResetPoll (PGConn *Conn);

Các chức năng này sẽ đóng kèo bóng đá cúp c2 với máy chủ và cố gắng thiết lập lại một kèo bóng đá cúp c2 mới với cùng một Máy chủ, sử dụng tất cả các tham số giống nhau được sử dụng trước đây. Cái này có thể hữu ích cho việc khôi phục lỗi nếu kèo bóng đá cúp c2 làm việc là mất. Chúng khác vớipqreset(ở trên) trong đó họ hành động trong một cách không chặn. kèo bóng đá cúp c2 chức năng này bị giống nhau Hạn chế làPQConnectStartParams, PQConnectStartPQConnectPoll.

Để bắt đầu đặt lại kèo bóng đá cúp c2, hãy gọiPQResetStart57322_57419pqresetpollTrong chính xác theo cách mà bạn sẽ tạo kèo bóng đá cúp c2 bằng cách sử dụngPQConnectPoll.

PQPingParams

PQPingParamsBáo cáo trạng thái của máy chủ. Nó chấp nhận các tham số kèo bóng đá cúp c2 giống với những người củaPQConnectDBParams, được mô tả ở trên. Nó là Tuy nhiên, không cần thiết để cung cấp tên người dùng chính xác, Mật khẩu hoặc giá trị tên cơ sở kèo bóng đá cúp c2 để có được máy chủ trạng thái.

58157_58244

Hàm trả về một trong kèo bóng đá cúp c2 giá trị sau:

PQPing_OK

Máy chủ đang chạy và dường như đang chấp nhận kèo bóng đá cúp c2.

PQPing_Rject

Máy chủ đang chạy nhưng ở trạng thái kèo bóng đá cúp c2 không hoàn toàn (khởi động, tắt máy hoặc sự cố sự hồi phục).

pqping_no_response

Máy chủ không thể liên hệ. Điều này có thể chỉ ra rằng máy chủ không chạy hoặc Có điều gì đó sai với kèo bóng đá cúp c2 đã cho tham số (ví dụ: số cổng sai) hoặc đó Có một vấn đề kèo bóng đá cúp c2 mạng (ví dụ, Tường lửa chặn yêu cầu kèo bóng đá cúp c2).

PQPing_NO_ATTEMEM

Không có nỗ lực nào được thực hiện để liên hệ với máy chủ, vì kèo bóng đá cúp c2 tham số được cung cấp rõ ràng là không chính xác hoặc Có một số vấn đề phía khách hàng (ví dụ, của bộ nhớ).

PQPing

PQPingBáo cáo trạng thái của máy chủ. Nó chấp nhận các tham số kèo bóng đá cúp c2 giống hệt cho những ngườiPQConnectDB,, mô tả ở trên. Tuy nhiên, không cần thiết để cung cấp đúng tên người dùng, mật khẩu hoặc giá trị tên cơ sở kèo bóng đá cúp c2 thành có được trạng thái máy chủ.

pgping pqping (const char *conninfo);

Giá trị trả về giống như đối vớiPQPingParams.