Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 29.libpq- C Thư viện | Chuyển tiếp nhanh | Tiếp theo |
PostgreSQLƯu đãi kèo tỷ số bóng đá euro hôm nay bộ quaNghevàkèo tỷ số bóng đá euro hôm naylệnh. Một phiên khách đăng ký sự quan tâm của nó trong một điều kiện kèo tỷ số bóng đá euro hôm nay cụ thể vớiNghelệnh (và có thể dừng lắng nghe vớiUnlistenlệnh). Tất cả các phiên lắng nghe trên một điều kiện cụ thể sẽ được kèo tỷ số bóng đá euro hôm nay không đồng bộ khi akèo tỷ số bóng đá euro hôm naylệnh với tên điều kiện đó được thực hiện bởi bất kỳ phiên. KHÔNG Thông tin bổ sung được chuyển từ kèo tỷ số bóng đá euro hôm nay cho người nghe. Do đó, thông thường, bất kỳ dữ liệu thực tế nào cần Truyền đạt được chuyển qua bảng cơ sở dữ liệu. Thông thường, Tên điều kiện giống như bảng liên kết, nhưng nó là không cần thiết để có bất kỳ bảng liên kết nào.
libpqỨng dụng gửinghevàUndistenCác lệnh như các lệnh SQL kèo tỷ số bóng đá euro hôm nay thường. Các
Sự xuất hiện củakèo tỷ số bóng đá euro hôm nayTin nhắn có thể
sau đó được phát hiện bằng cách gọipqnotifyes
.
hàmpqnotifyes
Trả về
kèo tỷ số bóng đá euro hôm nay tiếp theo từ danh sách kèo tỷ số bóng đá euro hôm nay chưa được xử lý
Tin nhắn nhận được từ máy chủ. Nó trả về một con trỏ null nếu
Không có kèo tỷ số bóng đá euro hôm nay đang chờ xử lý. Khi một kèo tỷ số bóng đá euro hôm nay là
đã trở về từpqnotifyes
, đó là
được coi là xử lý và sẽ bị xóa khỏi danh sách
kèo tỷ số bóng đá euro hôm nay.
pgnotify *pqnotifyes (pgconn *Conn); typedef struct pgnotify char *relname; / * Tên điều kiện kèo tỷ số bóng đá euro hôm nay */ int be_pid; / * Quy trình ID kèo tỷ số bóng đá euro hôm nay quy trình máy chủ */ char *thêm; / * Tham số kèo tỷ số bóng đá euro hôm nay */ Pgnotify;
Sau khi xử lý ApgnotifyĐối tượng
Được trả về bởipqnotifyes
, Hãy chắc chắn để
Miễn phí nó vớipqfreemem
. Nó là
đủ để giải phóngpgnotifyCon trỏ; TheRelnamevàExtraTrường kèo tỷ số bóng đá euro hôm nay đại diện cho riêng biệt
phân bổ. (Hiện tại,ExtraTrường kèo tỷ số bóng đá euro hôm nay được sử dụng và sẽ luôn chỉ vào một chuỗi trống.)
Ví dụ 29-2Đưa ra một chương trình mẫu minh họa cho việc sử dụng không đồng bộ kèo tỷ số bóng đá euro hôm nay.
pqnotifyes
kèo tỷ số bóng đá euro hôm nay thực sự
Đọc dữ liệu từ máy chủ; nó chỉ trả về tin nhắn trước đó
được hấp thụ bởi người kháclibpqHàm. Trong các bản phát hành trước củalibpq, Cách duy nhất để đảm bảo biên lai kịp thời
củakèo tỷ số bóng đá euro hôm nayTin nhắn liên tục
Gửi các lệnh, thậm chí các lệnh trống, sau đó kiểm trapqnotifyes
sau mỗiPQEXEC
. Trong khi điều này vẫn hoạt động, nó là
kèo tỷ số bóng đá euro hôm nay được lãng phí sức mạnh xử lý.
Cách tốt hơn để kiểm trakèo tỷ số bóng đá euro hôm nayTin nhắn Khi bạn kèo tỷ số bóng đá euro hôm nay có lệnh hữu ích để thực thi là gọiPQConsumeInput
, sau đó kiểm trapqnotifyes
. Bạn có thể sử dụngselect ()
Để chờ dữ liệu đến
từ máy chủ, do đó kèo tỷ số bóng đá euro hôm nay sử dụngCPUsức mạnh trừ khi có việc gì đó.
(Nhìn thấyPQSocket
Để lấy tệp
Số mô tả để sử dụng vớiselect ()
.) Lưu ý rằng điều này sẽ hoạt động tốt cho dù
Bạn gửi các lệnh vớiPQSendQuery
/PQGetResult
hoặc đơn giản là sử dụngPQEXEC
. Tuy nhiên, bạn nên nhớ kiểm trapqnotifyes
sau mỗiPQGetResult
hoặcPQEXEC
, để xem có bất kỳ kèo tỷ số bóng đá euro hôm nay nào được đưa vào
Trong quá trình xử lý lệnh.