lệnh tỷ lệ kèo bóng đá trực tuyến hôm nay trongPostgresCó các tùy chọn để đọc hoặc ghi vào tỷ lệ kèo bóng đá trực tuyến hôm nay nối mạng được sử dụng bởilibpq. Do đó, các chức năng là cần thiết Để truy cập trực tiếp tỷ lệ kèo bóng đá trực tuyến hôm nay nối mạng này để các ứng dụng có thể thực hiện lợi thế của khả năng này.
Các chức năng này chỉ được thực thi sau khi có được Pgres_copy_out hoặc pgres_copy_in đối tượng tỷ lệ kèo bóng đá trực tuyến hôm nay quả từ pqexec hoặc PQGetResult.
PQGetLineĐọc a dòng ký tự tỷ lệ kèo bóng đá trực tuyến hôm nay thúc mới (được truyền đi bởi Máy chủ phụ trợ) vào chuỗi bộ đệm có độ dài kích thước.
int PQGetLine (PGConn *Conn, Char *String, int length)Giống như fgets (3), thói quen này sao chép lên đến chiều dài-1 ký tự thành chuỗi. Nó giống như GET (3), tuy nhiên, trong đó nó chuyển đổi Chấm dứt dòng mới thành một nhân vật null. PQGetLine trả về EOF tại EOF, 0 nếu toàn bộ dòng đã được đọc và 1 nếu bộ đệm là đầy đủ nhưng dòng mới tỷ lệ kèo bóng đá trực tuyến hôm nay thúc chưa được đọc. Lưu ý rằng Ứng dụng phải kiểm tra xem một dòng mới có bao gồm cả hai ký tự "\.", chỉ ra rằng máy chủ phụ trợ có Hoàn thành việc gửi tỷ lệ kèo bóng đá trực tuyến hôm nay quả của lệnh sao chép. Nếu Ứng dụng có thể nhận được các dòng nhiều hơn chiều dài-1 Các nhân vật dài, quan tâm là cần thiết để chắc chắn rằng người ta nhận ra "\." dòng chính xác (và không, ví dụ, không nhầm lẫn sự tỷ lệ kèo bóng đá trực tuyến hôm nay thúc của một Dòng dữ liệu dài cho một dòng Terminator). Mã trong../ src/bin/psql/psql.cchứa các thói quen đó Xử lý chính xác giao thức tỷ lệ kèo bóng đá trực tuyến hôm nay.
PQGetLineAnyncĐọc a dòng ký tự tỷ lệ kèo bóng đá trực tuyến hôm nay thúc mới (được truyền đi bởi máy chủ phụ trợ) vào bộ đệm mà không chặn.
int pqgetLineAnync (pgconn *Conn, Char *bộ đệm, int bufsize)thói quen này tương tự như PQGetLine, nhưng nó có thể được sử dụng bởi các ứng dụng phải đọc dữ liệu sao chép không đồng bộ, nghĩa là mà không chặn. Đã ban hành lệnh sao chép và nhận được Phản hồi PGRES_COPY_OUT, Ứng dụng nên gọi pqconsumeinput và PQGetLineAsync cho đến khi phát hiện tín hiệu cuối cùng của dữ liệu. Không giống như PQGetLine, thói quen này chịu trách nhiệm phát hiện tỷ lệ kèo bóng đá trực tuyến hôm nay thúc dữ liệu. Trên mỗi cuộc gọi, pqgetLineAnync sẽ trả về dữ liệu nếu một Hoàn thành dòng dữ liệu được chấm dứt mới có sẵn trong LibPQ's bộ đệm đầu vào hoặc nếu dòng dữ liệu đến quá dài để phù hợp Bộ đệm được cung cấp bởi người gọi. Nếu không, không có dữ liệu nào được trả về Cho đến khi phần còn lại của dòng đến. Thường lệ trả về -1 nếu Điểm đánh dấu dữ liệu cuối sao đã được công nhận hoặc 0 nếu không có dữ liệu nào Có sẵn, hoặc một số dương đưa số byte dữ liệu trả lại. Nếu -1 được trả về, người gọi tiếp theo phải gọi pqendcopy, và sau đó trở lại xử lý bình thường. Dữ liệu được trả về sẽ không Mở rộng ra ngoài một nhân vật Newline. Nếu có thể, toàn bộ dòng sẽ trở lại một lúc. Nhưng nếu bộ đệm do người gọi cung cấp là Quá nhỏ để giữ một dòng được gửi bởi phần phụ trợ, sau đó là dữ liệu một phần dòng sẽ được trả lại. Điều này có thể được phát hiện bằng cách kiểm tra xem liệu Byte trả về lần cuối là '\ n' hay không. Chuỗi được trả về không Null-chấm dứt. (Nếu bạn muốn thêm một null chấm dứt, hãy chắc chắn Vượt qua một cái nhỏ hơn một căn phòng thực sự có sẵn.)
pqputlineGửi một tỷ lệ kèo bóng đá trực tuyến hôm nay thúc không Chuỗi vào máy chủ phụ trợ. Trả về 0 nếu ok, eof nếu không thể Gửi chuỗi.
int pqputline (pgconn *Conn, Char *String);Lưu ý Ứng dụng phải gửi rõ ràng hai ký tự "\." trên một dòng cuối cùng để chỉ ra phần phụ trợ mà nó có Đã hoàn thành việc gửi dữ liệu của nó.
pqputnbytesGửi a Chuỗi không tỷ lệ kèo bóng đá trực tuyến hôm nay thúc không null vào máy chủ phụ trợ. Trả về 0 nếu Ok, EOF nếu không thể gửi chuỗi.
int pqputnbytes (pgconn *Conn, const char *bộ đệm, int nbytes);Đây chính xác giống như pqputline, ngoại trừ bộ đệm dữ liệu không cần phải tỷ lệ kèo bóng đá trực tuyến hôm nay thúc vì số lượng byte để gửi là được chỉ định trực tiếp.
PQENDCOPYĐồng bộ hóa với phần phụ trợ. Chức năng này đợi cho đến khi phần phụ trợ tỷ lệ kèo bóng đá trực tuyến hôm nay thúc bản sao. Nó nên được phát hành khi chuỗi cuối cùng đã được gửi đến phần phụ trợ sử dụng pqputline hoặc khi chuỗi cuối cùng được Nhận được từ phần phụ trợ bằng cách sử dụng PGGetLine. Nó phải được phát hành hoặc Phần phụ trợ có thể nhận được "ra khỏi đồng bộ" với mặt trận. Trên trở lại từ chức năng này, phụ trợ đã sẵn sàng để nhận Truy vấn tiếp theo. Giá trị trả lại là 0 khi hoàn thành thành công, khác không.
int pqendcopy (pgconn *Conn);
làm ví dụ:
PQEXEC (Conn, "Tạo Bảng FOO (A Int4, B Char16, D Float8)"); PQEXEC (Conn, "tỷ lệ kèo bóng đá trực tuyến hôm nay foo từ stdin"); Pqputline (Conn, "3 <bl Hello World <b 4.5 \ n"); Pqputline (Conn, "4 <bt Goodbye World <b 7.11 \ n"); ... Pqputline (Conn, "\. \ N"); Pqendcopy (Conn);
Khi sử dụng PQGetResult, ứng dụng sẽ phản hồi tỷ lệ kèo bóng đá trực tuyến hôm nay quả pgres_copy_out bằng cách thực hiện pqgetline nhiều lần, theo sau bởi pqendcopy sau khi dòng Terminator được nhìn thấy. Nó nên sau đó Quay trở lại vòng lặp PQGetResult cho đến khi PQGetResult trả về NULL. Tương tự, tỷ lệ kèo bóng đá trực tuyến hôm nay quả PGRES_COPY_IN được xử lý bởi một loạt Các cuộc gọi pqputline theo sau là pqendcopy, sau đó quay lại PQGetResult Loop. Sự sắp xếp này sẽ đảm bảo rằng một bản sao trong hoặc Sao chép lệnh được nhúng trong một loạt các lệnh SQL sẽ được được thực hiện chính xác. Các ứng dụng cũ có khả năng gửi một bản sao trong hoặc sao chép qua PQEXEC và giả sử rằng giao dịch đã được thực hiện sau pqendcopy. Điều này sẽ chỉ hoạt động chính xác nếu bản sao vào/ra là lệnh sql duy nhất trong chuỗi truy vấn.