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
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 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

32.7. kèo bóng đá hom nay tiến hành#

32.7.1. Các chức năng để gửi các yêu cầu kèo bóng đá hom nay#

PQCanCelCreate #

Chuẩn bị kết nối mà có thể gửi yêu cầu kèo bóng đá hom nay.

PGCANCELCONN *

PQCanCelCreateTạo APGCANCELCONNĐối tượng, nhưng nó sẽ không bắt đầu gửi yêu cầu kèo bóng đá hom nay qua kết nối này. Yêu cầu kèo bóng đá hom nay có thể được gửi qua kết nối này theo cách chặn bằng cách sử dụngPQCANCELBLOCKvà theo cách không chặn bằng cách sử dụngPQCANCELSTART. Giá trị trả về có thể được chuyển choPQCANCELSTATUSĐể kiểm tra xemPGCANCELCONNĐối tượng đã được tạo thành công. ThePGCANCELCONNĐối tượng là cấu trúc mờ không có nghĩa là được truy cập trực tiếp bởi ứng dụng. Cái nàyPGCANCELCONNĐối tượng có thể được sử dụng để kèo bóng đá hom nay chạy trên kết nối ban đầu theo cách an toàn luồng.

Nhiều tham số kết nối của máy khách gốc sẽ được sử dụng lại khi thiết lập kết nối cho yêu cầu kèo bóng đá hom nay. Điều quan trọng, nếu kết nối ban đầu yêu cầu mã hóa kết nối và/hoặc xác minh máy chủ đích (sử dụngSSLModehoặcGSSENCMode), sau đó kết nối cho yêu cầu kèo bóng đá hom nay được thực hiện với các yêu cầu tương tự. Bất kỳ tùy chọn kết nối nào chỉ được sử dụng trong quá trình xác thực hoặc sau khi xác thực của máy khách đều bị bỏ qua, vì các yêu cầu kèo bóng đá hom nay không yêu cầu xác thực và kết nối được đóng ngay sau khi yêu cầu kèo bóng đá hom nay được gửi.

Lưu ý rằng khiPQCANCELCREATETrả về một con trỏ không null, bạn phải gọipqcancelfinishKhi bạn kết thúc với nó, để xử lý cấu trúc và bất kỳ khối bộ nhớ liên quan nào. Điều này phải được thực hiện ngay cả khi yêu cầu kèo bóng đá hom nay bỏ không thành công hoặc bị bỏ rơi.

PQCANCELBLOCK #

Yêu cầu máy chủ từ bỏ việc xử lý lệnh hiện tại theo cách chặn.

14634_14685

Yêu cầu được thực hiện trên đã choPGCANCELCONN, cần được tạo bằngPQCanCelCreate. Giá trị trả về củaPQCANCELBLOCKlà 1 nếu yêu cầu kèo bóng đá hom nay được gửi thành công và 0 nếu không. Nếu nó không thành công, thông báo lỗi có thể được truy xuất bằng cách sử dụngpqcancelerrormessage .

Công văn thành công của việc kèo bóng đá hom nay bỏ không đảm bảo rằng yêu cầu sẽ có bất kỳ ảnh hưởng nào. Nếu việc kèo bóng đá hom nay bỏ có hiệu lực, lệnh bị kèo bóng đá hom nay sẽ chấm dứt sớm và trả về kết quả lỗi.

PQCANCELSTART
PQCANCELPOLL #

yêu cầu máy chủ từ bỏ việc xử lý lệnh hiện tại theo cách không chặn.

16265_16380

Yêu cầu được thực hiện trên đã choPGCANCELCONN, cần được tạo bằngPQCanCelCreate. Giá trị trả về củaPQCANCELSTARTlà 1 nếu yêu cầu kèo bóng đá hom nay có thể được bắt đầu và 0 nếu không. Nếu nó không thành công, thông báo lỗi có thể được truy xuất bằng cách sử dụngPQCanCelErrorMessage .

nếuPQCANCELSTARTThà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 nối kèo bóng đá hom nay. Sử dụngPQCancelSocketĐể có được bộ mô tả của ổ cắm bên dưới kết nối cơ sở dữ liệu. (THẬN TRỌNG: Không cho rằng ổ cắm vẫn giống nhauPQCANCELPOLLcuộc gọi.) Vòng lặp như vậy: nếuTrả về lần cuốipgres_polling_reading, đợ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ọiMột lần nữa. Ngược lại, nếuTrả về lần cuốiPGRES_POLLING_WRITY, đợi cho đến khi ổ cắm sẵn sàng để viết, sau đó gọiMột lần nữa. Trên lần lặp đầu tiên, tức là, nếu bạn chưa gọi, Hành xử như thể nó đã trả về lần cuốiPGRES_POLLING_WRITY. Tiếp tục vòng lặp này cho đến khireturnPGRES_POLLING_FAILED, Cho biết quy trình kết nối đã thất bại hoặcPGRES_POLLING_OK, cho biết yêu cầu kèo bóng đá hom nay đã được gửi thành công.

Công văn thành công của việc kèo bóng đá hom nay bỏ không đảm bảo rằng yêu cầu sẽ có bất kỳ ảnh hưởng nào. Nếu việc kèo bóng đá hom nay bỏ có hiệu lực, lệnh bị kèo bóng đá hom nay sẽ chấm dứt sớm và trả về kết quả lỗi.

Bất cứ lúc nào trong quá trình kết nối, trạng thái của kết nối có thể được kiểm tra bằng cách gọiPQCANCELSTATUS. Nếu cuộc gọi này trả vềConnection_Bad, sau đó thủ tục kèo bóng đá hom nay bỏ đã thất bại; Nếu cuộc gọi trả vềConnection_ok, sau đó kèo bóng đá hom nay yêu cầu đã được gửi thành công. Cả hai trạng thái này đều có thể phát hiện như nhau từ giá trị trả về củaPQCANCELPOLL, được mô tả ở trên. Các trạng thái khác cũng có thể xảy ra trong (và chỉ trong) một thủ tục kết nối không đồng bộ.

Connection_allocated #

Đang chờ cuộc gọi đếnPQCANCELSTARThoặcPQCANCELBLOCK, để thực sự mở ổ cắm. Đây là trạng thái kết nối ngay sau khi gọiPQCanCelCreatehoặcPQCANCELRESET. Không có kết nối nào với máy chủ đã được bắt đầu vào thời điểm này.PQCANCELSTARThoặcPQCANCELBLOCK.

Connection_started #

chờ kết nối được thực hiện.

Connection_Made #

Kết nối OK; chờ gửi.

Connection_Awaiting_Response #

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

Connection_SSL_Startup #

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

Connection_GSS_startup #

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

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

Switch (pqcancelstatus (Conn))

TheConnect_TimeoutTham số kết nối bị bỏ qua khi sử dụngPQCANCELPOLL; Trách nhiệm của ứng dụng là quyết định xem một lượng thời gian quá mức đã trôi qua.PQCANCELSTARTtheo sau làPQCANCELPOLLVòng lặp tương đương vớiPQCANCELBLOCK.

PQCANCELSTATUS #

Trả về trạng thái của kết nối kèo bóng đá hom nay.

24060_24126

Trạng thái có thể là một trong một số giá trị. Tuy nhiên, chỉ có ba trong số này được nhìn thấy bên ngoài một thủ tục kèo bóng đá hom nay bỏ không đồng bộ:Connection_allocated, Connection_okConnection_Bad. Trạng thái ban đầu của APGCANCELCONNđược tạo thành công bằng cách sử dụngPQCANCELCREATEConnection_allocated. Một yêu cầu kèo bóng đá hom nay bỏ thành công được gửi đi có trạng tháiConnection_ok. Một nỗ lực kèo bóng đá hom nay bỏ không thành công được báo hiệu bởi trạng tháiConnection_Bad. Trạng thái OK sẽ vẫn như vậy cho đến khipqcancelfinishhoặcPQCANCELRESETđược gọi.

Xem mục choPQCANCELSTARTLiên quan đến các mã trạng thái khác có thể được trả về.

Công văn thành công của việc kèo bóng đá hom nay bỏ không đảm bảo rằng yêu cầu sẽ có bất kỳ ảnh hưởng nào. Nếu việc kèo bóng đá hom nay bỏ có hiệu lực, lệnh bị kèo bóng đá hom nay sẽ chấm dứt sớm và trả về kết quả lỗi.

PQCancelSocket #

Lấy số lượng mô tả tệp của ổ cắm kết nối kèo bóng đá hom nay vào máy chủ.

26125_26180

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ết nối máy chủ hiện đang mở.PGCANCELCONN(ngoại trừPQCanCelErrorMessagePQCancelSocketchính nó).

PQCanCelErrorMessage #

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ết nối kèo bóng đá hom nay.

27167_27230

Gần như tất cảlibpqCác chức năng lấy APGCANCELCONNSẽ đặt tin nhắn choPQCancelErrorMessageNếu họ thất bại. Lưu ý rằng bằnglibpqquy ước, một người không trốngpqcancelerrormessageKết 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ết quả trực tiếp.PGCANCELCONNXử lý được chuyển chopqcancelfinish. Chuỗi kết quả không nên được dự kiến ​​sẽ giữ nguyên trong các hoạt động trênPGCANCELCONNCấu trúc.

pqcancelfinish #

Đóng kết nối kèo bóng đá hom nay (nếu nó chưa hoàn tất gửi yêu cầu kèo bóng đá hom nay bỏ). Cũng giải phóng bộ nhớ được sử dụng bởiPGCANCELCONNĐối tượng.

28694_28744

Lưu ý rằng ngay cả khi nỗ lực kèo bóng đá hom nay bỏ không thành công (như được chỉ ra bởiPQCANCELSTATUS), Ứng dụng nên gọipqcancelfinishĐể giải phóng bộ nhớ được sử dụng bởiPGCANCELCONNĐối tượng. ThePGCANCELCONNCon trỏ không được sử dụng lại saupqcancelfinishđã được gọi.

pqcancelreset #

đặt lạiPGCANCELCONNVì vậy, nó có thể được sử dụng lại cho kết nối kèo bóng đá hom nay mới.

29799_29848

NếuPGCANCELCONNHiện đang được sử dụng để gửi yêu cầu kèo bóng đá hom nay, sau đó kết nối này được đóng lại. Sau đó nó sẽ chuẩn bịPGCANCELCONNĐối tượng sao cho nó có thể được sử dụng để gửi yêu cầu kèo bóng đá hom nay mới.

Điều này có thể được sử dụng để tạo mộtPGCANCELCONNcho APGConnvà tái sử dụng nó nhiều lần trong suốt vòng đời của bản gốcPGConn.

32.7.2. Các chức năng lỗi thời để gửi các yêu cầu kèo bóng đá hom nay#

Các chức năng này đại diện cho các phương thức gửi các yêu cầu kèo bóng đá hom nay bỏ cũ hơn. Mặc dù chúng vẫn hoạt động, nhưng chúng không được dùng để không gửi các yêu cầu kèo bóng đá hom nay theo cách được mã hóa, ngay cả khi kết nối ban đầu được chỉ địnhSSLModehoặcGSSENCModeĐể yêu cầu mã hóa. Do đó, các phương thức cũ này không được khuyến khích nhiều khi được sử dụng trong mã mới và thay vào đó nên thay đổi mã hiện có để sử dụng các chức năng mới.

PQGetCancel #

Tạo cấu trúc dữ liệu chứa thông tin cần thiết để kèo bóng đá hom nay lệnh bằng cách sử dụngPQCANCEL.


          

PQGetCancelTạo APGCANCELĐối tượng đã cho APGConnĐối tượng kết nối. Nó sẽ trở lạinullNếu đã choConnnullhoặc kết nối không hợp lệ. ThePGCANCELĐối tượng là cấu trúc mờ không có nghĩa là được truy cập trực tiếp bởi ứng dụng; nó chỉ có thể được truyền choPQCANCELhoặcPQFreeCANCEL.

PQFreeCANCEL #

giải phóng cấu trúc dữ liệu được tạo bởiPQGetCancel.

VOID PQFREECANCEL (PGCANT

PQFreeCANCELGiải phóng một đối tượng dữ liệu được tạo trước đó bởiPQGetCancel.

PQCANCEL #

PQCANCELlà biến thể không phản đối và không an toàn củaPQCANCELBLOCK, nhưng một thứ có thể được sử dụng một cách an toàn từ trong bộ xử lý tín hiệu.

34067_34132

PQCANCELChỉ tồn tại vì lý do tương thích ngược.PQCANCELBLOCKnên được sử dụng thay thế. Lợi ích duy nhấtPQCANCELCó là nó có thể được gọi an toàn từ trình xử lý tín hiệu, nếuerrbuflà một biến cục bộ trong trình xử lý tín hiệu. Tuy nhiên, điều này thường không được coi là một lợi ích đủ lớn để có giá trị các kèo bóng đá hom nay đề bảo mật mà chức năng này có.

ThePGCANCELĐối tượng chỉ đọc xa nhưPQCANCEL35031_35135PGConnĐối tượng.

Giá trị trả về củaPQCANCELlà 1 nếu yêu cầu kèo bóng đá hom nay được gửi thành công và 0 nếu không. Nếu không,errbufđược điền vào thông báo lỗi giải thích.errbufPhải là một mảng char có kích thướcerrbufSize(Kích thước được đề xuất là 256 byte).

PQRequestCancel #

PQRequestCancellà biến thể không phản đối và không an toàn củaPQCANCELBLOCK.

36336_36374

PQRequestCancelChỉ tồn tại vì lý do tương thích ngược.PQCANCELBLOCKnên được sử dụng thay thế. Không có lợi cho việc sử dụngPQRequestCancelOverPQCANCELBLOCK.

Yêu cầu máy chủ từ bỏ xử lý lệnh hiện tại. Nó hoạt động trực tiếp trênPGConnĐối tượng và trong trường hợp lỗi lưu trữ thông báo lỗi trongPGConnĐối tượng (từ đó có thể được truy xuất bởipqerrormessage). Mặc dù chức năng là như nhau, nhưng phương pháp này không an toàn trong các chương trình nhiều luồng hoặc trình xử lý tín hiệu, vì có thể ghi đè lênPGConnThông báo lỗi của bạn sẽ làm rối tung hoạt động hiện đang được kèo bóng đá hom nay trên kết nối.