tỷ lệ kèo bóng đá 9.0.23 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 31.libpq- C Thư viện | Tiếp theo |
ThePQEXEC
Hàm là đủ
PQEXEC
Chờ tỷ lệ kèo bóng đá
Vì việc thực hiện ứng dụng máy khách bị đình chỉ
PQEXEC
chỉ có thể trả về mộtpgresultCấu trúc. NếuSQLCác tỷ lệ kèo bóng đá, tất cả trừ cuối cùngPGRESULTbị loại bỏ bởiPQEXEC
.
Các ứng dụng tỷ lệ kèo bóng đá thích những hạn chế này có thểPQEXEC
được xây dựng từ:PQSendQuery
vàPQGetResult
. Cũng cóPQSendQueryParams
,PQSendPrepare
,PQSendQueryPrepared
,và
, có thể được sử dụng với
PQGetResult
để nhân đôiPQExecParams
,PQPrepare
,PQEXECPREPARED
,và
PQDescriptePortal
PQSendQuery
gửi lệnh lên máy chủ mà tỷ lệ kèo bóng đá cần chờpqerrormessage
Để biết thêm thông tin
13449_13504
Sau khi gọi thành côngPQSendQuery
, gọiPQGetResult
Một hoặc nhiều lần để có đượcPQSendQuery
tỷ lệ kèo bóng đá thể được gọi lại (trên cùng một kết nối) cho đến khiPQGetResult
đã trả lại a
PQSendQueryParams
gửi một tỷ lệ kèo bóng đá và các tham số riêng biệt cho máy chủ
int pqsendqueryparams (pgconn *Conn,
Điều này tương đương vớiPQSendQuery
Ngoại trừ các tham số truy vấnPQExecparams
. GiốngPQExecParams
, nó sẽ tỷ lệ kèo bóng đá
PQSendPrepare
Gửi yêu cầu tạo câu tỷ lệ kèo bóng đá đã chuẩn bị với
int pqsendprepare (pgconn *Conn,
Đây là phiên bản tỷ lệ kèo bóng đá bộ củaPQPrepare
: nó trả về 1 nếu nó có thểPQGetResult
đếnPQPrepare
.PQPrepare
, nó sẽ tỷ lệ kèo bóng đá
PQSendQueryPrepared
Gửi yêu cầu thực hiện một câu tỷ lệ kèo bóng đá đã chuẩn bị với
int pqsendqueryprepared (PGConn *Conn,
Điều này tương tự nhưPQSendQueryParams
, nhưng tỷ lệ kèo bóng đá sẽ đượcPQEXECPREPARED
. GiốngPQEXECPREPARED
, nó sẽ tỷ lệ kèo bóng đá hoạt động
gửi yêu cầu lấy thông tin về
17611_17678
Đây là phiên bản tỷ lệ kèo bóng đá bộ của: nó trả về 1 nếu nó
PQGetResult
Để có được kết quả. Các. Giống
, Nó sẽ
gửi yêu cầu lấy thông tin về
18547_18614
Đây là phiên bản tỷ lệ kèo bóng đá bộ củaPQDescriptePortal
: nó trả về 1 nếu nó làPQGetResult
Để có được kết quả. CácPQDescriptePortal
. GiốngPQDescriptePortal
, nó sẽ tỷ lệ kèo bóng đá
PQGetResult
Chờ kết quả tiếp theo từ trướcPQSendQuery
,PQSendQueryParams
,PQSendPrepare
hoặcPQSendQueryPrepared
Gọi và trả lại nó.
PQGetResult
phải được gọiPQGetResult
Sẽ chỉ trở lạiPQGetResult
nên đượcpgresultHàm Accessor trước đâyPQClear
Khi được thực hiện với nó.PQGetResult
WillPQConsumeInput
.
Sử dụngPQSendQuery
vàPQGetResult
giải quyết một trongPQEXEC
S vấn đề: Nếu một tỷ lệ kèo bóng đáSQLCác tỷ lệ kèo bóng đá, kết quả của các tỷ lệ kèo bóng đá đó có thể được lấyPQGetResult
vẫn sẽ khiến máy khách đếnSQLtỷ lệ kèo bóng đá. Điều này có thể tránh được bằng cách thích hợp
PQConsumeInput
Nếu đầu vào có sẵn từ máy chủ, hãy tiêu thụ nó.
int pqconsumeinput (pgconn *Conn);
PQConsumeInput
Thông thường"tỷ lệ kèo bóng đá có lỗi",,pqerrormessage
có thểPQConsumeInput
, Thepqisbusy
và/hoặcpqnotify
Để xem nhà nước của họ có
PQConsumeInput
có thểselect ()
Read-ReadPQConsumeInput
Để xóaselect ()
Điều kiện
pqisbusy
Trả về 1 nếu tỷ lệ kèo bóng đá bận, nghĩa làPQGetResult
Sẽ chặn chờ đợiPQGetResult
có thể được gọi với sự đảm bảo
int pqisbusy (pgconn *Conn);
pqisbusy
sẽ tỷ lệ kèo bóng đá chính nóPQConsumeInput
Phải
Một ứng dụng điển hình sử dụng các chức năng này sẽ có một chínhselect ()
hoặcpoll ()
Để chờ tất cảselect ()
có nghĩa là dữ liệu có thể đọc được trên tệpPQSocket
.PQConsumeInput
Để đọc đầu vào.pqisbusy
, theo sauPQGetResult
nếupqisbusy
Trả về false (0). Nó cũng có thể gọipqnotifyes
để phát hiệnThông báoTin nhắn (xemPhần 31.7).
Một máy khách sử dụngPQSendQuery
/PQGetResult
cũng có thể cố gắng hủy mộtPhần 31.5. Nhưng bất kểPQCANCEL
, ThePQGetResult
. Một thành công
Bằng cách sử dụng các chức năng được mô tả ở trên, có thểSao chép trongTuy nhiên.) Để ngăn chặn điều này
pqsetNonblocking
Đặt trạng thái tỷ lệ kèo bóng đá chặn của kết nối.
int pqsetNonblocking (pgconn *Conn, int arg);
Đặt trạng thái của kết nối thành tỷ lệ kèo bóng đá chặn nếuarglà 1 hoặc chặn nếuarglà 0. Trả về 0 nếu ok, -1 nếu
Ở trạng thái tỷ lệ kèo bóng đá chặn, các cuộc gọi đếnPQSendQuery
,pqputline
,pqputnbytes
vàPQENDCOPY
sẽ tỷ lệ kèo bóng đá chặn mà thay vào đó
Lưu ý rằngPQEXEC
tỷ lệ kèo bóng đá
pqisnonblocking
Trả về trạng thái chặn của cơ sở dữ liệu
int pqisnonblocking (const pgconn *Conn);
Trả về 1 nếu kết nối được đặt thành chế độ tỷ lệ kèo bóng đá chặn
pqflush
cố gắng xóa bất kỳ dữ liệu đầu ra được xếp hàng nào vào máy chủ.
int pqflush (pgconn *Conn);
Sau khi gửi bất kỳ lệnh hoặc dữ liệu nào trên kết nối tỷ lệ kèo bóng đá chặn,PQFLUSH
. Nếu nó trở lại 1, hãy đợiPQFLUSH
Một lần nữa. Nếu nhưPQConsumeInput
, sau đó gọipqflush
Một lần nữa. Lặp lại cho đến khipqflush
Trả về 0. (Cần kiểm traPQConsumeInput
, vì máy chủ có thể chặnPQFLUSH
Trả về 0, đợi ổ cắm được