Các thói quen sau giải quyết việc tạo kết kèo bóng đá hôm nay và ngày mai với APostgreSQLMáy chủ phụ trợ. Các
Chương trình ứng dụng có thể mở một số kết kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai được biểu diễn bằng mộtPGConnđối tượng được lấy từPQConnectDB
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ượng. Thepqstatus
10848_10983
PQConnectDB
làm cho một mới
Kết kèo bóng đá hôm nay và ngày mai với máy chủ cơ sở dữ liệu.
PGConn *PQConnectDB (const char *Conninfo)
11207_11303Conninfo. Không giống nhưPQSetDbLogin
bên dưới, bộ tham số có thể
được mở rộng mà không thay đổi chữ ký chức năng, vì vậy hãy sử dụng
một trong những thói quen này hoặc các chất tương tự không chặnPQConnectStart
vàPQConnectPoll
11658_11856
Mỗi cài đặt tham số ở dạngTừ khóa = value. (Để viết một giá trị trống hoặc một Giá trị chứa không gian, bao quanh nó với các trích dẫn đơn, ví dụ.,Từ khóa = 'A Value'. Đơn Báo giá và dấu gạch chéo ngược trong giá trị phải được thoát ra với một dấu gạch chéo ngược, ví dụ:\ 'hoặc\.) không bắt buộc. Các từ khóa tham số hiện được công nhận là:
12509_12829/TMP.
Địa chỉ IP của máy chủ để kết kèo bóng đá hôm nay và ngày mai với. Cái này nên ở
Biểu mẫu số và điểm tiêu chuẩn, được sử dụng bởi BSD
Chức nănginet_aton
et
al. Nếu một chuỗi độ dài khác được chỉ định, TCP/IP
giao tiếp được sử dụng.
Sử dụnghostaddrThay vì máy chủ cho phép ứng dụng tránh tên máy chủ tra cứu, điều này có thể quan trọng trong các ứng dụng với hạn chế thời gian. Tuy nhiên, xác thực Kerberos yêu cầu tên máy chủ. Sau đây áp dụng. Nếu máy chủ được chỉ định mà không cóhostaddr, Tra cứu tên máy chủ bị ép buộc. Nếu nhưhostaddrđược chỉ định không có máy chủ, giá trị chohostaddrđưa ra địa chỉ từ xa; nếu như Kerberos được sử dụng, điều này gây ra truy vấn tên ngược. Nếu như Cả máy chủ vàhostaddrlà được chỉ định, giá trị chohostaddrđưa ra địa chỉ từ xa; các giá trị cho máy chủ bị bỏ qua, trừ khi kerberos được sử dụng, trong Trường hợp nào giá trị đó được sử dụng cho kerberos xác thực. Lưu ý rằng xác thực có khả năng thất bại nếulibpqIS đã truyền một tên máy chủ không phải là tên của máy Tạihostaddr.
Không có tên máy chủ hoặc địa chỉ máy chủ,libpqSẽ kết kèo bóng đá hôm nay và ngày mai sử dụng ổ cắm miền unix cục bộ.
Số cổng để kết kèo bóng đá hôm nay và ngày mai 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 kèo bóng đá hôm nay và ngày mai.
Tên cơ sở dữ kèo bóng đá hôm nay và ngày mai.
Tên người dùng để kết kèo bóng đá hôm nay và ngày mai AS.
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.
Không gian thời gian tính bằng giây được đưa ra để kết kèo bóng đá hôm nay và ngày mai thói quen. Không hoặc không đặt có nghĩa là vô hạn.
Các tùy chọn theo dõi/gỡ lỗi sẽ được gửi đến máy chủ.
một tệp hoặcttycho đầu ra gỡ lỗi tùy chọn từ phần phụ trợ.
Đặt thành 1 để yêu cầuSSLKết kèo bóng đá hôm nay và ngày mai với máy chủ.libpqSau đó sẽ từ chối Để kết kèo bóng đá hôm nay và ngày mai nếu máy chủ không chấp nhậnSSLKết kèo bóng đá hôm nay và ngày mai. Bộ đến 0 (mặc định) để thương lượng với máy chủ. Tùy chọn này là Chỉ khả dụng nếuPostgreSQLđược biên dịch với SSL ủng hộ.
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 1.10) được kiểm tra. Nếu biến môi trường không được đặt Hoặc, sau đó mặc định cứng được sử dụng. Giá trị trả về là một con trỏ tới một bản tóm tắtstruct16844_16896
PQSetDbLogin
làm cho một mới
Kết kèo bóng đá hôm nay và ngày mai với máy chủ cơ sở dữ liệu.
PGConn *pqsetdblogin (const char *pghost, 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 số lượng cố định
tham số nhưng cùng một chức năng.
PQSetDB
làm cho một cái mới
Kết kèo bóng đá hôm nay và ngày mai 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Đăng nhập
vàPWD
tham số. Nó được cung cấp chủ yếu
Để tương thích ngược với các chương trình cũ.
PQConnectStart
, PQConnectPoll
Tạo kết kèo bóng đá hôm nay và ngày mai với máy chủ cơ sở dữ liệu trong A trong A
cách không chặn.
PGConn *PQConnectStart (const char *Conninfo)
18471_18528
Hai thói quen này được sử dụng để mở kết kèo bóng đá hôm nay và ngày mai 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.
Kết kèo bóng đá hôm nay và ngày mai 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ừ chuỗiConninfo, được chuyển choPQConnectStart
18910_18977PQConnectDB
.
khôngPQConnectStart
cũng khôngPQConnectPoll
Sẽ chặn, như
miễn là một số hạn chế được đáp ứng:
Thehostaddrvàmáy chủtham số được sử dụng phù hợp để
Đảm bảo rằng các truy vấn tên và tên ngược không được thực hiện.
Xem tài kèo bóng đá hôm nay và ngày mai của các tham số này theoPQConnectDB
ở trên cho
chi tiết.
Nếu bạn gọiPQTRACE
,,
đả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 cho mình rằng ổ cắm nằm trong
Trạng thái thích hợp trước khi gọiPQConnectPoll
, như được mô tả dưới đây.
20013_20030Conn = PQConnectStart ("20110_20134"). Nếu như20177_20183
là null, sau đólibpqđã không thể phân bổ mớiPGConnCấu trúc. Nếu không, a
có hiệu lựcPGConnCon trỏ được trả về
(mặc dù chưa đại diện cho một kết kèo bóng đá hôm nay và ngày mai hợp lệ với
cơ sở dữ liệu). Khi trở về từPQConnectStart
, gọistatus = pqstatus (Conn). Nếu trạng thái bằngConnection_Bad, PQConnectStart
đã thất bại.
nếuPQConnectStart
thà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ết kèo bóng đá hôm nay và ngày mai. Vòng lặp như vậy: Xem xét một kết kèo bóng đá hôm nay và ngày mai"không hoạt động"Theo mặc định. Nếu nhưPQConnectPoll
Đã trả về lần cuốipgres_polling_active21163_21185"Active"Thay kèo bóng đá hôm nay và ngày maio đó. Nếu nhưPQConnectPoll (Conn)
Đã trả lại lần cuốipgres_polling_reading, thực hiện Aselect ()
để đọc trênPQSocket (Conn)
. Nếu nó kéo dài
đã trả vềPGRES_POLLING_WRITY,,
thực hiện aselect ()
để viết
TRÊNPQSocket (Conn)
. Nếu bạn có
chưa gọiPQConnectPoll
, tức là.
Sau cuộc gọi đếnPQConnectStart
, hành xử như thể nó kéo dài
đã trả vềPGRES_POLLING_WRITY. Nếu như
Theselect ()
cho thấy
Ổ cắm đã sẵn sàng, hãy xem xét nó"Active". Nếu nó đã được quyết định rằng điều này
Kết kèo bóng đá hôm nay và ngày mai là"Active", gọiPQConnectPoll (Conn)
Một lần nữa. Nếu như
Cuộc gọi này trả vềPGRES_POLLING_FAILED, Quy trình kết kèo bóng đá hôm nay và ngày mai
đã thất bại. Nếu cuộc gọi này trả vềpgres_polling_ok, kết kèo bóng đá hôm nay và ngày mai đã được
được thực hiện thành công.
Lưu ý rằng việc sử dụngselect ()
Để đảm bảo rằng ổ cắm đã sẵn sàng
chỉ là một ví dụ (có thể); những người có cơ sở khác
Có sẵn, chẳng hạn nhưpoll ()
Gọi, tất nhiên có thể sử dụng điều đó thay thế.
Bất cứ lúc nào trong quá trình kết kèo bóng đá hôm nay và ngày mai, trạng thái của
Kết kèo bóng đá hôm nay và ngày mai có thể được kiểm tra, bằng cách gọipqstatus
. Nếu đây làConnection_Bad, sau đó quy trình kết kèo bóng đá hôm nay và ngày mai
đã thất bại; Nếu đây làConnection_ok
, thì kết kèo bóng đá hôm nay và ngày mai là
sẵn sàng. Một trong những trạng thái này có thể được phát hiện như nhau
Từ giá trị trả về củaPQConnectPoll
, như trên. Các tiểu bang khác có thể
được hiển thị trong (và chỉ trong khi) kết kèo bóng đá hôm nay và ngày mai không đồng bộ
thủ tục. Những điều này chỉ ra giai đoạn hiện tại của kết kèo bóng đá hôm nay và ngày mai
Quy trình và có thể hữu ích để cung cấp phản hồi cho người dùng
Ví dụ. Các trạng thái này có thể bao gồm:
chờ kết kèo bóng đá hôm nay và ngày mai được thực hiện.
Kết kèo bóng đá hôm nay và ngày mai OK; chờ gửi.
Đang chờ phản hồi từ máy chủ.
nhận được xác thực; chờ kết kèo bóng đá hôm nay và ngày mai Khởi động để tiếp tục.
Môi trường đàm phán (một phần của kết kèo bóng đá hôm nay và ngày mai khởi động).
Lưu ý rằng, mặc dù các hằng số này sẽ vẫn còn (theo thứ tự Để duy trì khả năng tương thích), một ứng dụng không bao giờ nên dựa kèo bóng đá hôm nay và ngày maio khi những thứ này xuất hiện theo một thứ tự cụ thể, hoặc Trạng thái luôn luôn là một trong những giá trị được ghi lại này. MỘT Ứng dụng có thể làm điều gì đó như thế này:
Switch (pqstatus (Conn)) Case Connection_started: Phản hồi = "Kết kèo bóng đá hôm nay và ngày mai ..."; phá vỡ; Case Connection_Made: Phản hồi = "Kết kèo bóng đá hôm nay và ngày mai với máy chủ ..."; phá vỡ; . . . mặc định: Phản hồi = "Kết kèo bóng đá hôm nay và ngày mai ...";
Lưu ý rằng nếuPQConnectStart
Trả về một con trỏ không null, bạn phải gọipqfinish
Khi bạn kèo bóng đá hôm nay và ngày mai thúc với nó, trong
để loại bỏ cấu trúc và bất kỳ bộ nhớ liên quan nào
khối. Điều này phải được thực hiện ngay cả khi cuộc gọi đếnPQConnectStart
hoặcPQConnectPoll
Không thành công.
PQConnectPoll
hiện tại sẽ
chặn nếulibpqđược biên soạn
vớiuse_sslđược xác định. Cái này
Hạn chế có thể bị xóa trong tương lai.
Các chức năng này để lại ổ cắm ở trạng thái không chặn như
nếu nhưpqsetNonblocking
25846_25871
PQConnDefaults
Trả về
Tùy chọn kết kèo bóng đá hôm nay và ngày mai mặc định.
PQConnInfooption *PQConnDefaults (void) struct pqconninfooption 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; /* Ký tự để hiển thị cho trường này Trong một hộp thoại kết kèo bóng đá hôm nay và ngày mai. 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 */
Trả về một mảng tùy chọn kết kèo bóng đá hôm nay và ngày mai. Điều này có thể được sử dụng để
Xác định tất cả có thểPQConnectDB
Tùy chọn và hiện tại của chúng
giá trị mặc định. Giá trị trả về chỉ kèo bóng đá hôm nay và ngày maio một mảngPQConninFooption structs, kèo bóng đá hôm nay và ngày mai thúc bằng một mục có một null
con trỏ từ khóa. Lưu ý rằng các giá trị mặc định (ValTrường) sẽ phụ thuộc vào môi trường
Biến và bối cảnh khác. Người gọi phải đối xử với
Dữ liệu tùy chọn kết kèo bóng đá hôm nay và ngày mai là chỉ đọc.
Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách chuyển nó
ĐẾNPQConnInfofree
. Nếu đây là
Không xong, một lượng nhỏ bộ nhớ bị rò rỉ cho mỗi cuộc gọi đếnPQConnDefaults
.
inPostgreSQLPhiên bản
Trước 7.0,PQConnDefaults
27778_27939
pqfinish
Đóng
Kết kèo bóng đá hôm nay và ngày mai với phụ trợ. 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 cố gắng kết kèo bóng đá hôm nay và ngày mai phụ trợ không thành công (như
được chỉ ra bởipqstatus
), The
Ứng dụng nên gọipqfinish
Để giải phóng bộ nhớ được sử dụng bởiPGConnĐối tượng. ThePGConnKhông nên sử dụng con trỏ saupqfinish
đã được gọi.
pqreset
Đặt lại
Cổng giao tiếp với phần phụ trợ.
void pqreset (pgconn *Conn)
Hàm này sẽ đóng kết kèo bóng đá hôm nay và ngày mai với phụ trợ và cố gắng thiết lập lại một kết kèo bóng đá hôm nay và ngày mai 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. Đây có thể là hữu ích cho việc khôi phục lỗi nếu kết kèo bóng đá hôm nay và ngày mai làm việc là mất.
pqresetstart
pqresetpoll
Đặt lại cổng giao tiếp
với phần phụ trợ, theo cách không chặn.
int pqresetstart (pgconn *Conn);
29395_29451
29466_29748pqreset
(ở trên) trong đó chúng hành động theo cách không chặn. Những cái này
các chức năng bị các hạn chế giống nhưPQConnectStart
vàPQConnectPoll
.
GọiPQResetStart
. Nếu nó
Trả về 0, thiết lập lại đã thất bại. Nếu nó trở lại 1, hãy thăm dò ý kiến
Đặt lại bằngpqresetpoll
in
Chính xác giống như cách bạn tạo kết kèo bóng đá hôm nay và ngày mai bằng cách sử dụngPQConnectPoll
.
libpqLập trình viên ứng dụng nên cẩn thận để duy trìPGConnTrừu tượng. Sử dụng người truy cập các chức năng bên dưới để có được nội dung củaPGConn. Tránh trực tiếp tham chiếu các trường củaPGConnCấu trúc vì chúng có thể thay đổi trong tương lai. (Bắt đầu trongPostgreSQLPhát hành 6.4, định nghĩa củastruct pgconnthậm chí không được cung cấp tronglibpq-fe.h. Nếu bạn có mã cũ Truy cậpPGConnTrường trực tiếp, bạn có thể tiếp tục sử dụng nó bằng cách bao gồmlibpq-int.hquá, nhưng bạn được khuyến khích sửa chữa mã sớm.)
PQDB
Trả về cơ sở dữ liệu
Tên của kết kèo bóng đá hôm nay và ngày mai.
char *pqdb (const pgconn *Conn)
PQDB
và một số tiếp theo
Các chức năng trả về các giá trị được thiết lập tại kết kèo bóng đá hôm nay và ngày mai. Những cái này
Các giá trị được cố định cho tuổi thọ củaPGConnĐối tượng.
PQUSER
Trả về tên người dùng
của kết kèo bóng đá hôm nay và ngày mai.
char *pquser (const pgconn *Conn)
PQPass
Trả về mật khẩu
của kết kèo bóng đá hôm nay và ngày mai.
31984_32020
PQHOST
Trả về máy chủ
Tên máy chủ của kết kèo bóng đá hôm nay và ngày mai.
char *pqhost (const pgconn *Conn)
PQPort
Trả về cổng của
kết kèo bóng đá hôm nay và ngày mai.
char *pqport (const pgconn *Conn)
PQTTY
Trả về gỡ lỗittycủa kết kèo bóng đá hôm nay và ngày mai.
char *pqtty (const pgconn *Conn)
PQOptions
Trả về
Các tùy chọn phụ trợ được sử dụng trong kết kèo bóng đá hôm nay và ngày mai.
char *pqoptions (const pgconn *Conn)
pqstatus
Trả về trạng thái
của kết kèo bóng đá hôm nay và ngày mai.
ConnstatusType pqStatus (const pgconn *Conn)
Trạng thái có thể là một trong một số giá trị. Tuy nhiên, chỉ
Hai trong số này được nhìn thấy bên ngoài kết kèo bóng đá hôm nay và ngày mai không đồng bộ
thủ tục -Connection_okhoặcConnection_Bad. Một kết kèo bóng đá hôm nay và ngày mai tốt với
Cơ sở dữ liệu có trạng tháiConnection_ok. Một nỗ lực kết kèo bóng đá hôm nay và ngày mai thất bại là
được báo hiệu bởi trạng tháiConnection_Bad.
Thông thường, trạng thái OK sẽ vẫn như vậy cho đến khipqfinish
, nhưng thất bại truyền thông
có thể dẫn đến trạng thái 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 choPQConnectStart
vàPQConnectPoll
Liên quan đến trạng thái khác
mã có thể được nhìn thấy.
pqerrormessage
Trả về thông báo lỗi nhiều nhất
gần đây được tạo bởi một thao tác trên kết kèo bóng đá hôm nay và ngày mai.
char * pqerrormessage (const pgconn * Conn);
Gần như tất cảlibpq34367_34395pqerrormessage
Nếu họ thất bại. Lưu ý rằng bằnglibpqHội nghị, a
không trốngpqerrormessage
Will
Bao gồm một dòng mới.
PQBackendPid
Trả về
quá trìnhidcủa phần phụ trợ
máy chủ xử lý kết kèo bóng đá hôm nay và ngày mai này.
int pqbackendPid (const pgconn *Conn);
Phần phụ trợPIDIS Hữu ích cho mục đích gỡ lỗi và để so sánh để thông báo tin nhắn (bao gồmPIDcủa phần phụ trợ thông báo). Lưu ý rằng ThePIDthuộc về a xử lý thực thi trên máy chủ máy chủ cơ sở dữ kèo bóng đá hôm nay và ngày mai, không phải cục bộ chủ nhà!
PQGetSSL
Trả về cấu trúc SSL được sử dụng trong
kết kèo bóng đá hôm nay và ngày mai hoặc null nếu SSL không được sử dụng.
SSL *PQGetSSL (const pgconn *Conn);
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à nhiều hơn nữa. Tham khảo SSL Tài kèo bóng đá hôm nay và ngày mai cho thông tin về cấu trúc này.
Bạn phải xác địnhuse_sslTheo thứ tự Để có được nguyên mẫu cho chức năng này. Làm điều này cũng sẽ tự động bao gồmssl.htừOpenSSL.