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

32.7. kèo bóng đá euro 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 đá euro#

PQCanCelCreate #

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

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 đá euro qua kết nối này. Yêu cầu kèo bóng đá euro 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 đá euro 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 đá euro. Đ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 đá euro được thực hiện với các yêu cầu tương tự này. 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 đá euro 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 đá euro đượ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 đá euro 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.

14292_14343

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 đá euro đượ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 đá euro 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 đá euro bỏ có hiệu lực, lệnh bị kèo bóng đá euro 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.

15923_16038

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 đá euro 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 đá euro. 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ếuĐã trả lại 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 đá euro đã được gửi thành công.

Công văn thành công của việc kèo bóng đá euro 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 đá euro bỏ có hiệu lực, lệnh bị kèo bóng đá euro 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 đá euro bỏ không thành công; Nếu cuộc gọi trả vềConnection_ok, sau đó kèo bóng đá euro 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 đá euro.

23720_23786

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 đá euro 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 đá euro bỏ thành công được gửi đi có trạng tháiConnection_ok. Một nỗ lực kèo bóng đá euro 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 đá euro 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 đá euro bỏ có hiệu lực, lệnh bị kèo bóng đá euro 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 đá euro vào máy chủ.

25791_25846

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 đá euro.

26833_26896

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

28360_28410

Lưu ý rằng ngay cả khi nỗ lực kèo bóng đá euro 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 đá euro mới.

29465_29514

NếuPGCANCELCONNHiện đang được sử dụng để gửi yêu cầu kèo bóng đá euro, 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 đá euro 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 đá euro#

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 đá euro 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 đá euro 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 pháp 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 tại để 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 đá euro 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.

33733_33798

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ó rằng nó có thể được gọi một cách 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 đá euro đề bảo mật mà chức năng này có.

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

Giá trị trả về củaPQCANCELlà 1 nếu yêu cầu kèo bóng đá euro đượ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à một biến thể không phản đối và không an toàn củaPQCANCELBLOCK.

int pqrequestCancel (pgconn *Conn);

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 cách tiếp cận 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ênPGConncủa thông báo lỗi sẽ làm rối tung hoạt động hiện đang được kèo bóng đá euro trên kết nối.

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 khớpMẫu nàyĐể báo cáo kèo bóng đá euro đề tài liệu.