Postgresql 9.1.24 Tài liệu | ||||
---|---|---|---|---|
스포츠 토토 사이트 : 문서 : 9.1 : LIBPQ -C 라이브러리 | UP | Chươ윈 토토 31.libpq- C Thư viện | PostgreSQL : 문서 : 9.1 : 토토 결과 상태 기능 |
Các chức nă윈 토토 sau liên quan đến việc tạo kết nối với APostgreSQLMáy chủ phụ trợ. MỘT
Chươ윈 토토 trình ứ윈 토토 dụ윈 토토 có thể mở một số kết nối 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ết nối được biểu diễn bằ윈 토토 mộtPGConnđối tượ윈 토토, được lấy từ
chức nă윈 토토PQConnectDB
, PQConnectDBParams
hoặcPQSetDbLogin
. Lưu ý rằng các 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ượ윈 토토. ThePQStatus
Hàm nên được gọi để kiểm tra
Trả về giá trị cho kết nối thành công trước khi các truy vấn được gửi
thông qua đối tượng kết nối.
Cảnh báo |
11678_11967 |
Lưu ý:Trên Windows, có một cách để cải thiện Hiệu suất nếu một kết nối 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ọi
wsastartup ()
vàwsacleanup ()
cho kết nối khởi động và Tắt, tương ứng.wsastartup ()
Tă윈 토토 một cửa sổ bên tro윈 토토 Số lượ윈 토토 tham chiếu thư viện bị giảm bởiwsacleanup ()
. Khi số lượ윈 토토 tham chiếu là Chỉ một, gọiwsacleanup ()
Giải phóng tất cả các tài nguyên và tất cả các 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 윈 토토uyên sẽ khô윈 토토 được giải phó윈 토토 khi kết nối cơ sở dữ liệu cuối cù윈 토토 được đó윈 토토.
PQConnectDBParams
Tạo kết nối mới với máy chủ cơ sở dữ liệu.
13394_13487
Hàm này mở kết nối cơ sở dữ liệu mới bằ윈 토토 cách sử dụ윈 토토
tham số được lấy từ hainull-Kết thúc mả윈 토토. Đầu tiên,Từ khóa, được định 윈 토토hĩa là một mả윈 토토 chuỗi,
Mỗi 윈 토토ười là một từ khóa. Thứ hai,Giá trị, đưa ra giá trị cho mỗi từ khóa.
Khô윈 토토 giố윈 토토 nhưPQSetDbLogin
bê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
Các chất tương tự không chặnPQConnectStartParams
vàPQConnectPoll
) được ưu tiên cho mới
Lập trình ứ윈 토토 dụ윈 토토.
khiexpand_dbnamelà khác khô윈 토토, Thedbnamegiá trị từ khóa là được phép được cô윈 토토 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ả các 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ả윈 토토.
Các từ khóa tham số hiện được cô윈 토토 nhận là:
Tên của máy chủ để kết nối 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ô윈 토토 được chỉ định là kết nối với một miền Unix Ổ cắm tro윈 토토/TMP(hoặc bất cứ điều gì Thư mục ổ cắm được chỉ định khiPostgreSQLđã được xây dự윈 토토). TRÊN máy khô윈 토토 có ổ cắm tên miền Unix, mặc định là Để kết nối vớilocalhost.
Địa chỉ IP số của máy chủ để kết nối 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 các đị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ụ윈 토토hostaddrthay 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 các ứng dụng với các 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ứ윈 토토 chỉ. Các quy tắc sau đây là đã sử dụ윈 토토:
nếuhostđược chỉ định khô윈 토토 cóhostaddr, một máy chủ Tra cứu tên xảy ra.
nếuhostaddrIS được chỉ định mà khô윈 토토 cómáy chủ,, giá trị chohostaddrCung cấp địa chỉ mạng máy chủ. Kết nối 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ả haihostvàhostaddrđượ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ả năng thất bại nếumáy chủkhô윈 토토 phải là tên của Máy chủ tại địa chỉ mạ윈 토토hostaddr. 윈 토토oài ra, lưu ý rằ윈 토토máy chủchứ khô윈 토토 phảihostaddrđược sử dụ윈 토토 để xác định kết nối tro윈 토토~/.PGPass(xemPhần 31,14).
Khô윈 토토 có tên máy chủ hoặc địa chỉ máy chủ,libpqSẽ kết nối 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ết nối vớiLocalhost.
Số cổng để kết nối tại máy chủ máy chủ hoặc Tiện ích mở rộng tên tệp của ổ cắm cho Unix-Domain kết nối.
Tên cơ sở dữ liệu. Mặc định giố윈 토토 như Tên 윈 토토ười dù윈 토토.
PostgreSQL윈 토토ười dù윈 토토 Tên để kết nối như. Mặc định giố윈 토토 như Tên hệ điều hành của 윈 토토ười dù윈 토토 đa윈 토토 chạy ứ윈 토토 dụ윈 토토.
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.
Chờ tối đa để kết nối, tính bằ윈 토토 giây (viết AS một chuỗi số nguyên thập phân). Khô윈 토토 hoặc không được chỉ định có nghĩa là chờ vô thời hạn. Khô윈 토토 nên sử dụng thời gian chờ dưới 2 giây.
Điều này đặtclient_encodi윈 토토Cấu hình tham số cho kết nối 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 các hệ thống UNIX).
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ề các tùy chọn có sẵn, tham khảo ý kiếnChươ윈 토토 18.
Chỉ định giá trị choapplication_nameTham số cấu hình.
Chỉ định giá trị dự phò윈 토토 choapplication_nameTham số cấu hình. Giá trị này sẽ được sử dụng nếu Khô윈 토토 có giá trị nào được đưa ra choapplication_namethông qua kết nối tham số hoặcPGAPPNAMEBiến môi trườ윈 토토. Chỉ định một tên dự phò윈 토토 là hữu ích tro윈 토토 các chươ윈 토토 trình tiện ích chu윈 토토 muốn thiết lập Tên ứ윈 토토 dụ윈 토토 mặc định như윈 토토 cho phép nó được được ghi đè bởi 윈 토토ười dù윈 토토.
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ết nối Được thực hiện thông qua ổ cắm miền Unix.
Kiểm soát số giây không hoạt động sau khi TCP nào sẽ gửi một thông điệp Keepalive đến máy chủ. Giá trị bằ윈 토토 0 sử dụng mặc định hệ thống. Cái này tham số bị bỏ qua cho các kết nối đượ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_KeepidlehoặcTCP_KeepaliveTùy chọn ổ cắm là Có sẵn, và trên Windows; Trên các hệ thống khác, nó có không có tác dụng.
Đ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ằ윈 토토 không hệ thống mặc định. Tham số này bị bỏ qua cho các kết nối đượ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 các hệ thống khác, nó có không có tác dụng.
Kiểm soát số lượng Keepalive TCP có thể bị mất trước khi kết nối của khách hàng với máy chủ là được coi là chết. Giá trị bằ윈 토토 0 sử dụng hệ thống mặc định. Tham số này bị bỏ qua cho các kết nối đượ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 các hệ thống khác, nó không có tác dụng.
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ủ).
Tùy chọn này xác định xem hoặc với cái gì Ưu tiên an toànSSLKết nối TCP/IP sẽ thương lượng với máy chủ. Có sáu chế độ:
Chỉ thử khô윈 토토SSLKết nối
Đầu tiên hãy thử khô윈 토토SSLKết nối; Nếu điều đó thất bại, thử mộtSSLKết nối
Đầu tiên hãy thửSSLKết nối; Nếu điều đó Thất bại, hãy thử khôngSSLKết nối
chỉ thửSSLKết nối. 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
Chỉ thửSSLKết nối 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)
Chỉ thửSSLKết nối, 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 các 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épvàưa thíchsẽ được chấp nhận như윈 토토libpqSẽ khô윈 토토 thực sự cố gắ윈 토토SSLKết nối.
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ết nối với máy chủ là bắt buộc (điều này tương đương vớiSSLMode Yêu cầu).libpqSau đó sẽ từ chối Kết nối nếu máy chủ không chấp nhậnSSLKết nối. Nếu như đặt thành 0 (mặc định),libpqSẽ thương lượng Loại kết nối 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.
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ết nối SSL không làm ra.
Tham số này chỉ định vị trí cho Khóa bí mật được sử dụ윈 토토 cho chứ윈 토토 chỉ máy khách. Nó có thể Một tro윈 토토 hai chỉ định tên tệp sẽ được sử dụ윈 토토 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"Độ윈 토토 cơ"(Độ윈 토토 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ết nối SSL không được thực hiện.
Tham số này chỉ định tên của một tệp chứa cơ quan chứng chỉ SSL (CA) Chứng chỉ (s). Nếu tập tin tồn tại, chứng chỉ của máy chủ sẽ được xác minh được ký bởi một trong những cơ quan này. Mặc định là~/.Postgresql/root.crt.
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.
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ết nối ổ cắm tên miền Unix, nếu tham số này là đặt, máy khách kiểm tra ở đầu kết nối 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ết nối 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ươ윈 토토 tự như vậy Có sẵn với chứng chỉ SSL trên TCP/IP kết nối. (Lưu ý rằng nếu ổ cắm tên miền Unix TRONG/TMPhoặc công khai khác Vị trí có thể ghi, bất kỳ người dùng nào cũng có thể khởi động máy chủ lắng nghe ở đó. Sử dụ윈 토토 tham số này để đảm bảo rằng Bạn được kết nối với một máy chủ do người dùng đáng tin cậy điều hành.) Tùy chọn này chỉ được hỗ trợ trên các nền tảng mà ThePeerXác thực Phươ윈 토토 pháp được thực hiện; nhìn thấyPhần 19.3.7.
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.5vàPhần 19.3.3.)
Thư viện GSS để sử dụ윈 토토 để xác thực GSSAPI. Chỉ một Được sử dụ윈 토토 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.
Tên dịch vụ để sử dụ윈 토토 cho các tham số bổ su윈 토토. Nó Chỉ định tên dịch vụ tro윈 토토pg_service.confgiữ thêm tham số kết nối. Đ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ết nối 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ườ윈 토토 cũ윈 토토 khô윈 토토 được đặt, sau đó được chỉ định mặc định tích hợp được sử dụ윈 토토.
nếuexpand_dbnamelà khô윈 토토 khác
Vàdbnamechứa=dấu, nó được lấy dưới dạ윈 토토ConninfoChuỗi theo cách tươ윈 토토 tự như
Nếu nó đã được truyền choPQConnectDB
(xem bên dưới). Trước đây
Các từ khóa được xử lý sẽ bị ghi đè bởi các từ khóa trongConninfochuỗi.
Nói chu윈 토토, các từ khóa được xử lý từ đầu Các mả윈 토토 theo thứ tự chỉ mục. Hiệu quả của điều này là Khi các từ khóa được lặp lại, giá trị được xử lý cuối cù윈 토토 là giữ lại. Do đó, thô윈 토토 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ết nối mới với máy chủ cơ sở dữ liệu.
PGConn *PQConnectDB (const char *ConnInfo);
Hàm này mở kết nối cơ sở dữ liệu mới bằ윈 토토 cách sử dụ윈 토토 tham số được lấy từ chuỗiConninfo.
Chuỗi truyền có thể trống để sử dụng tất cả các mặc định tham số hoặc nó có thể chứa một hoặc nhiều tham số Cài đặt được phân tách bằ윈 토토 khoảng trắng. Mỗi cài đặt tham số là Trong biểu mẫuTừ khóa = value. Khô윈 토토 gian xung quanh dấu hiệu bằ윈 토토 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ằ윈 토토 một dấu gạch chéo ngược, tức là,\ 'và\\.
Các từ khóa tham số hiện được nhận dạ윈 토토 là các từ Giố윈 토토 như trên.
PQSetDbLogin
Tạo kết nối 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ủaPQConnectDB
Với một bộ cố định
tham số. Nó có cù윈 토토 chức nă윈 토토 윈 토토oại trừ
Thiếu tham số sẽ luôn luôn có các giá trị mặc định.
Viếtnullhoặc một chuỗi trống cho
bất kỳ một trong các tham số cố định là
mặc định.
Nếudbnamechứa=dấu, nó được lấy dưới dạ윈 토토ConninfoChuỗi theo cách tươ윈 토토 tự như
Nếu nó đã được truyền choPQConnectDB
và các tham số còn lại
sau đó được áp dụng như trên.
PQSetDB
Tạo kết nối 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ọiPQSetDbLogin
với các con trỏ null choĐă윈 토토 nhậpvàPWDtham số. Nó được cu윈 토토 cấp cho
Khả nă윈 토토 tươ윈 토토 thích 윈 토토ược với các chươ윈 토토 trình rất cũ.
PQConnectStartParams
PQConnectStart
PQConnectPoll
Tạo kết nối 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);
Ba chức năng này được sử dụng để mở kết nối với A
máy chủ cơ sở dữ liệu sao cho chủ đề của ứng dụng của bạn về
Thực thi không bị chặn trên I/O từ xa trong khi làm như vậy. Các
Điểm của phương pháp này là sự chờ đợi cho I/O
Hoàn thành có thể xảy ra trong vòng lặp chính của ứng dụng, thay vào đó
hơn xuống bên trongPQConnectDBParams
hoặcPQConnectDB
, và vì vậy ứng dụng có thể
Quản lý hoạt động này song song với các hoạt động khác
các hoạt động.
vớiPQConnectStartParams
,,
Kết nối cơ sở dữ liệu được thực hiện bằ윈 토토 cách sử dụng các tham số được thực hiện
từTừ khóavàGiá trịMảng và được điều khiển bởiexpand_dbname, như được mô tả ở trên choPQConnectDBParams
.
vớiPQConnectStart
, The
Kết nối cơ sở dữ liệu được thực hiện bằ윈 토토 các tham số được lấy từ
chuỗiConninfonhư mô tả
Trên choPQConnectDB
.
Khô윈 토토PQConnectStartParams
cũ윈 토토 khô윈 토토PQConnectStart
cũ윈 토토 khô윈 토토PQConnectPoll
sẽ chặn, miễn là a
Số lượ윈 토토 hạn chế được đáp ứ윈 토토:
Thehostaddrvàhosttham số được sử dụng một cách thích hợp
để đảm bảo rằng các truy vấn tên và tên ngược không
làm ra. Xem tài liệu của các tham số này theoPQConnectDBParams
ở trên
Để biết chi tiết.
Nếu bạn gọiPQTRACE
,,
đảm bảo rằ윈 토토 đối tượ윈 토토 luồ윈 토토 mà bạn theo dõi sẽ
khô윈 토토 khối.
Bạn đảm bảo rằng ổ cắm phù hợp
trạ윈 토토 thái trước khi gọiPQConnectPoll
, như mô tả
dưới.
Lưu ý: Sử dụ윈 토토PQConnectStartParams
tươ윈 토토 tự nhưPQConnectStart
hiển thị
dưới.
Để bắt đầu yêu cầu kết nối khô윈 토토 chặn, hãy gọiConn = PQConnectStart ("Connection_info_Stri윈 토토"). Nếu nhưConnlà null, sau đólibpqđã khô윈 토토 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ết nối với cơ sở dữ liệu). Khi trở về từPQConnectStart
, gọistatus = pqStatus (Conn). Nếu nhưtrạ윈 토토 tháibằ윈 토토Connection_Bad, PQConnectStart
đã thất bại.
nếuPQConnectStart
Thành cô윈 토토, giai đoạn tiếp theo là thăm dò ý kiếnlibpqđể nó có thể tiến hành
Trình tự kết nối. Sử dụ윈 토토PQSocket (Conn)
Để có được bộ mô tả
của ổ cắm bên dưới kết nối cơ sở dữ liệu. Vòng lặp
Do đó: nếuPQConnectPoll (Conn)
Đã trả lại lần cuốipgres_polli윈 토토_readi윈 토토, đợi cho đến khi ổ cắm
đã sẵn sàng để đọc (như được chỉ ra bởiselect ()
, 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_POLLI윈 토토_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à, 윈 토토ay sau cuộc gọi đếnPQConnectStart
, hoạt động như thể nó kéo dài
đã trả vềPGRES_POLLI윈 토토_WRITY.
Tiếp tục vòng lặp này cho đến khiPQConnectPoll (Conn)
returnPGRES_POLLI윈 토토_FAILED, chỉ ra
Quy trình kết nối đã thất bại hoặcPGRES_POLLI윈 토토_OK, Cho biết kết nối
đã được thực hiện thành cô윈 토토.
Bất cứ lúc nào trong quá trình kết nối, trạ윈 토토 thái của
Kết nối có thể được kiểm tra bằ윈 토토 cách gọipqstatus
. Nếu cuộc gọi này trả vềConnection_Bad, sau đó quy trình kết nối
đã thất bại; Nếu cuộc gọi trả vềConnection_ok
, thì kết nối là
sẵn sàng. Cả hai trạ윈 토토 thái này đều có thể phát hiện như nhau từ
Giá trị trả về củaPQConnectPoll
, đượ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ết nối 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ết nối 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à:
chờ kết nối được thực hiện.
Kết nối OK; chờ gửi.
Đang chờ phản hồi từ máy chủ.
nhận được xác thực; chờ đợi phụ trợ Khởi độ윈 토토 để hoàn thành.
Đàm phán mã hóa SSL.
Tham số điều khiển môi trường Cài đặt.
Lưu ý rằng, mặc dù các 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ô윈 토토 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ết nối ..."; phá vỡ; Case Connection_Made: Phản hồi = "Kết nối với máy chủ ..."; phá vỡ; . . . mặc định: Phản hồi = "Kết nối ...";
TheConnect_TimeoutKết nối
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ì,PQConnectStart
theo sau làPQConnectPoll
Vòng lặp tương đương vớiPQConnectDB
.
Lưu ý rằng nếuPQConnectStart
Trả về một người không null
con trỏ, bạn phải gọipqfinish
Khi bạn kết thúc với nó,
để xử lý cấu trúc và bất kỳ liên kết nào
Khối bộ nhớ. Điều này phải được thực hiện ngay cả khi kết nối
cố gắng thất bại hoặc bị bỏ rơi.
PQConnDefaults
Trả về các tùy chọn kết nối 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ết nối. 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ết nối. Điều này có thể được sử dụng để
Xác định tất cả có thểPQConnectDB
Tù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ết thúc bằ윈 토토 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ết nối là
chỉ đọc.
Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằ윈 토토 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ết nối phân tích cú pháp từ được cung cấp chuỗi kết nối.
53014_53089
Phân tích chuỗi kết nối 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ết nối. Chức năng này có thể được sử dụng để trích xuấtPQConnectDB
Tùy chọn trong
Cung cấp chuỗi kết nối. Giá trị trả về chỉ ra một
mảngPQConninFooptionCấu trúc, kết thúc bằ윈 토토 một mục có nullTừ khóaCon trỏ.
Lưu ý rằ윈 토토 chỉ các tùy chọn được chỉ định rõ rà윈 토토 tro윈 토토 Chuỗi sẽ có các giá trị được đặt tro윈 토토 mả윈 토토 kết quả; KHÔ윈 토토 Mặc định được chèn.
nếuerrmsgkhô윈 토토 phảinull, sau đó*errmsgđược đặt thànhnullThành cô윈 토토, khác để
Mộtmalloc
'D chuỗi lỗi
giải thích vấn đề. (Nó cũ윈 토토 có thể cho*errmsgđược đặt thànhnullvà chức năng 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ằ윈 토토 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ô윈 토토null, Hãy chắc chắn giải phó윈 토토 lỗi
Chuỗi sử dụ윈 토토PQFREEMEM
.
pqfinish
Đóng kết nối với máy chủ. Cũng giải phóng bộ nhớ Được sử dụng bởiPGConnĐối tượ윈 토토.
void pqfinish (pgconn *Conn);
Lưu ý rằng ngay cả khi kết nối máy chủ không cố
(như được chỉ ra bởipqstatus
),
Ứ윈 토토 dụ윈 토토 nên gọipqfinish
Để giải phó윈 토토 bộ nhớ được sử dụ윈 토토 bởiPGConnĐối tượ윈 토토. ThePGConnCon trỏ khô윈 토토 được sử dụ윈 토토 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);
Chức năng này sẽ đóng kết nối với máy chủ và cố gắng thiết lập lại một kết nối 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ết nối làm việc bị mất.
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ết nối với máy chủ
và cố gắng thiết lập lại một kết nối 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ết nối làm việc là
mất. Chúng khác vớipqreset
(ở trên) tro윈 토토 đó họ hành độ윈 토토 tro윈 토토 một
cách khô윈 토토 chặn. Các chức nă윈 토토 này bị giố윈 토토 nhau
Hạn chế làPQConnectStartParams
, PQConnectStart
vàPQConnectPoll
.
Để bắt đầu đặt lại kết nối, hãy gọiPQResetStart
. Nếu nó trả về 0, thiết lập lại
đã thất bại. Nếu nó trả về 1, hãy bỏ phiếu đặt lại bằ윈 토토 cách sử dụngpqresetpoll
Trong chính xác
theo cách mà bạn sẽ tạo kết nối bằ윈 토토 cách sử dụngPQConnectPoll
.
PQPi윈 토토Params
PQPi윈 토토Params
Báo cáo
trạ윈 토토 thái của máy chủ. Nó chấp nhận các tham số kết nối
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ở dữ liệu để có được máy chủ
trạ윈 토토 thái.
58157_58244
Hàm trả về một trong các giá trị sau:
Máy chủ đang chạy và dường như đang chấp nhận kết nối.
Máy chủ đang chạy nhưng ở trạ윈 토토 thái kết nối không hoàn toàn (khởi động, tắt máy hoặc sự cố sự hồi phục).
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ết nối đã cho tham số (ví dụ: số cổng sai) hoặc đó Có một vấn đề kết nối mạng (ví dụ, Tường lửa chặn yêu cầu kết nối).
Khô윈 토토 có nỗ lực nào được thực hiện để liên hệ với máy chủ, vì các 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ớ).
PQPi윈 토토
PQPi윈 토토
Báo cáo trạ윈 토토 thái
của máy chủ. Nó chấp nhận các tham số kết nối 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ở dữ liệu thành
có được trạ윈 토토 thái máy chủ.
pgpi윈 토토 pqpi윈 토토 (const char *conninfo);
Giá trị trả về giống như đối vớiPQPi윈 토토Params
.
prev | Tra윈 토토 chủ | NEXT |
libpq- C Thư viện | UP | Trạ윈 토토 thái kết nối Chức nă윈 토토 |