lệnh cách đọc kèo bóng đá trong11286_11298Có các tùy chọn để đọc hoặc viết đến cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ách đọc kèo bóng đá chức năng này chỉ được thực thi sau khi có đượcPGRES_COPY_OUThoặcPGRES_COPY_INĐối tượng cách đọc kèo bóng đá quả từPQEXEC
hoặcPQGetResult
.
PQGetLine
Đọc a
dòng ký tự cách đọc kèo bóng đá 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)
nhưfgets
, thói quen này
Bản cách đọc kèo bóng đá lên đến chiều dài 1 ký tự thành chuỗi. Nó giống nhưNhận
Tuy nhiên, trong đó
Chuyển đổi việc chấm dứt dòng mới thành một byte số 0.PQGetLine
returnEOF12468_12618
Lưu ý rằng ứng dụng phải kiểm tra xem có phải mới dòng bao gồm hai ký tự\., trong đó chỉ ra rằng máy chủ phụ trợ đã gửi xong kết quả của lệnh cách đọc kèo bóng đá. 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 ký tự dài, cần phải quan tâm để chắc chắn người ta nhận ra\.dòng chính xác (và không, cho Ví dụ: nhầm lẫn cách đọc kèo bóng đá thúc của một dòng dữ liệu dài cho một người cách đọc kèo bóng đá thúc đường kẻ). Mã trong13194_13215Chứa các thói quen ví dụ xử lý chính xác giao thức cách đọc kèo bóng đá.
PQGetLineAsync
Đọc a
dòng ký tự cách đọc kèo bóng đá 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 cách đọc kèo bóng đá không đồng bộ, nghĩa là
mà không chặn. Đã phát hành lệnh cách đọc kèo bóng đá và nhận đượcPGRES_COPY_OUTPhản hồi, The
Ứng dụng nên gọiPQConsumeInput
vàPQGetLineAsync
Cho đến tín hiệu cuối cùng của dữ liệu
được phát hiện. Không giống nhưPQGetLine
14169_14260PQGetLineAsync
Sẽ trả về dữ liệu nếu dòng dữ liệu hoàn chỉnh được cách đọc kèo bóng đá thúc
có sẵn tronglibpq14430_14618
Thông thường trả về -1 nếu điểm đánh dấu dữ liệu cuối cách đọc kèo bóng đá
được công nhận hoặc 0 nếu không có dữ liệu hoặc tích cực
Số cho số byte dữ liệu được trả về. Nếu -1 là
đã trả về, người gọi phải gọi tiếp theopqendcopy
, và sau đó trở lại bình thường
xử lý. Dữ liệu được trả về sẽ không vượt ra ngoài
Nhân vật Newline. Nếu có thể, toàn bộ dòng sẽ được trả lại
Đã có lúc. Nhưng nếu bộ đệm do người gọi cung cấp cũng vậy
nhỏ để giữ một dòng được gửi bởi phụ trợ, sau đó là một phần dữ liệu
dòng sẽ được trả lại. Điều này có thể được phát hiện bằng cách đọc kèo bóng đá kiểm tra
Liệu Byte cuối cùng được trả lại là\ nhoặc không. Chuỗi trả về không được chấm dứt. (Nếu bạn
Muốn thêm NULL chấm dứt, hãy chắc chắn vượt quaBufsize
Một nhỏ hơn
phòng thực sự có sẵn.)
pqputline
Gửi a
Chuỗi cách đọc kèo bóng đá thúc null vào máy chủ phụ trợ. Trả về 0 nếu
ĐƯỢC RỒI,EOFNếu không thể gửi
sợi dây.
int pqputline (PGConn *Conn, const char *chuỗi);
Lưu ý Ứng dụng phải gửi rõ ràng hai ký tự\.Trên dòng cuối cùng đến chỉ ra phần phụ trợ rằng nó đã gửi xong dữ liệu.
pqputnbytes
Gửi a
Chuỗi không cách đọc kèo bóng đá thúc không null vào máy chủ phụ trợ. Trả về 0
Nếu ok,EOFNếu không thể gửi
sợi dây.
int pqputnbytes (pgconn *Conn, const char *bộ đệm, int nbytes);
Điều này giống hệtpqputline
, ngoại trừ bộ đệm dữ liệu cần
không bị cách đọc kèo bóng đá 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ụ trợ. Chức năng này đợi cho đến khi phần phụ trợ có
Hoàn thành bản cách đọc kèo bóng đá. Nó nên được ban hành khi cái cuối cùng
Chuỗi đã được gửi đến phần phụ trợ bằngpqputline
hoặc khi chuỗi cuối cùng được
nhận được từ phần phụ trợ bằng cách đọc kèo bóng đá sử dụngPGGetLine
. Nó phải được phát hành hoặc phụ trợ
có thể nhận được"Out of Sync"với
phía trước. Khi trở về từ chức năng này, phần phụ trợ là
Sẵn sàng nhận cách đọc kèo bóng đá SQL tiếp theo. Giá trị trả về 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 Char (16), D Double Precision)"); PQEXEC (Conn, "cách đọc kèo bóng đá foo từ stdin"); Pqputline (Conn, "3 \ Thello World \ t4.5 \ n"); Pqputline (Conn, "4 \ tgoodbye World \ t7.11 \ n"); ... Pqputline (Conn, "\. \ N"); Pqendcopy (Conn);
Khi sử dụngPQGetResult
, The
Ứng dụng sẽ trả lờiPGRES_COPY_OUTcách đọc kèo bóng đá quả bằng cách thực thiPQGetLine
Càng lặp đi lặp lại, theo sau làPQENDCOPY
Sau khi thấy dòng Terminator được nhìn thấy. Nó
sau đó sẽ trở lạiPQGetResult
Vòng lặp cho đến khiPQGetResult
Trả về null. Tương tự APGRES_COPY_INcách đọc kèo bóng đá quả được xử lý bởi A
sê -ripqputline
Cuộc gọi theo sau
quaPQENDCOPY
, sau đó quay lạiPQGetResult
Vòng lặp. Sự sắp xếp này
sẽ đảm bảo rằng một lệnh cách đọc kèo bóng đá hoặc cách đọc kèo bóng đá ra lệnh
sê -riSQLcách đọc kèo bóng đá lệnh 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 hoặc cách đọc kèo bóng đá ra
thông quaPQEXEC
và giả sử rằng
Giao dịch được thực hiện sauPQENDCOPY
. Điều này sẽ hoạt động chính xác chỉ khi
cách đọc kèo bóng đá vào/ra là duy nhấtSQLcách đọc kèo bóng đá trong chuỗi cách đọc kèo bóng đá.