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 / 7.4 / 7.3 / 7.2 / 7.1
Tài tỷ lệ kèo bóng đá trực tuyến hôm nay này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong tỷ lệ kèo bóng đá trực tuyến hôm nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

31.9. Các chức năng được liên tỷ lệ kèo bóng đá trực tuyến hôm nay vớiCopylệnh

TheCopylệnh trongPostgreSQLCó 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. tỷ lệ kèo bóng đá trực tuyến hôm nay mô tả trong phần này cho phép các ứng dụng tận dụng khả năng này bằng cách cung cấp hoặc tiêu thụ dữ liệu được sao chép.

Quy trình tổng thể là ứng dụng đầu tiên phát hành SQLCopyLệnh quaPQEXEChoặc một trong tỷ lệ kèo bóng đá trực tuyến hôm nay tương đương. Phản hồi cho điều này (nếu không có lỗi trong lệnh) sẽ làPGRESULTđối tượng mang mã trạng thái củaPGRES_COPY_OUThoặcPGRES_COPY_IN(tùy thuộc vào hướng sao chép được chỉ định). Sau đó, ứng dụng nên sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay của phần này để nhận hoặc truyền các hàng dữ liệu. Khi truyền dữ liệu hoàn tất, một người khácpgresultĐối tượng được trả về để biểu thị thành công hoặc thất bại của việc chuyển nhượng. Trạng thái của nó sẽ làPGRES_COMMAND_OKĐể thành công hoặcPGRES_FATAL_ERRORNếu gặp một số vấn đề. Tại thời điểm này, tỷ lệ kèo bóng đá trực tuyến hôm nay lệnh SQL có thể được cấp quaPQEXEC. (Không thể thực thi các lệnh SQL khác bằng cùng một tỷ lệ kèo bóng đá trực tuyến hôm nay nối trong khiCopyHoạt động đang được tiến hành.)

Nếu ACopyLệnh được cấp quaPQEXECTrong một chuỗi có thể chứa các lệnh bổ sung, ứng dụng phải tiếp tục tìm nạp tỷ lệ kèo bóng đá trực tuyến hôm nay quả quaPQGetResultSau khi hoàn thànhCopyTrình tự. Chỉ khiPQGetResultreturn13124_13130Có chắc chắn rằngPQEXECChuỗi lệnh được thực hiện và an toàn khi đưa ra nhiều lệnh hơn.

Các chức năng của phần này chỉ được thực thi sau khi có được trạng thái tỷ lệ kèo bóng đá trực tuyến hôm nay quả củaPGRES_COPY_OUThoặcPGRES_COPY_INtừPQEXEChoặcPQGetResult.

ApgresultĐối tượng mang một trong tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị trạng thái này mang một số dữ liệu bổ sung về13669_13675Hoạt động đang bắt đầu. Dữ liệu bổ sung này có sẵn bằng cách sử dụng các chức năng cũng được sử dụng liên quan đến tỷ lệ kèo bóng đá trực tuyến hôm nay quả truy vấn:

PQNFields

Trả về số lượng cột (trường) sẽ được sao chép.

PQBinaryTuples

0 Cho biết định dạng bản sao tổng thể là văn bản (tỷ lệ kèo bóng đá trực tuyến hôm nay hàng được phân tách bằng tỷ lệ kèo bóng đá trực tuyến hôm nay cột, tỷ lệ kèo bóng đá trực tuyến hôm nay cột được phân tách bởi tỷ lệ kèo bóng đá trực tuyến hôm nay ký tự phân cách, v.v.). 1 Cho biết định dạng bản sao tổng thể là nhị phân. Nhìn thấyCopyĐể biết thêm thông tin.

PQFFormat

Trả về mã định dạng (0 cho văn bản, 1 cho nhị phân) được liên tỷ lệ kèo bóng đá trực tuyến hôm nay với mỗi cột của hoạt động sao chép. Các mã định dạng trên mỗi cột sẽ luôn bằng không khi định dạng bản sao tổng thể là văn bản, nhưng định dạng nhị phân có thể hỗ trợ cả cột văn bản và nhị phân. (Tuy nhiên, kể từ khi triển khai hiện tạiCopy, chỉ tỷ lệ kèo bóng đá trực tuyến hôm nay cột nhị phân xuất hiện trong một bản sao nhị phân; Vì vậy, tỷ lệ kèo bóng đá trực tuyến hôm nay định dạng trên mỗi cột luôn phù hợp với định dạng tổng thể hiện tại.)

Lưu ý:Các giá trị dữ liệu bổ sung này chỉ khả dụng khi sử dụng Giao thức 3.0. Khi sử dụng Giao thức 2.0, tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay này sẽ trả về 0.

31.9.1. Chức năng gửiCopyData

tỷ lệ kèo bóng đá trực tuyến hôm nay này được sử dụng để gửi dữ liệu trongSao chép từ Stdin. Họ sẽ thất bại nếu được gọi khi tỷ lệ kèo bóng đá trực tuyến hôm nay nối không ởcopy_in15527_15536

pqputcopydata

Gửi dữ tỷ lệ kèo bóng đá trực tuyến hôm nay đến máy chủ trong khicopy_inBang.

int pqputcopydata (pgconn *Conn,
                  const char *bộ đệm,
                  int nbytes);

TruyềnCopyDữ tỷ lệ kèo bóng đá trực tuyến hôm nay trong được chỉ địnhbộ đệm, độ dàinbytes, đến máy chủ. tỷ lệ kèo bóng đá trực tuyến hôm nay quả là 1 nếu dữ liệu được gửi, không nếu nó không được gửi vì nỗ lực sẽ chặn (trường hợp này chỉ có thể nếu tỷ lệ kèo bóng đá trực tuyến hôm nay nối ở chế độ không chặn) hoặc -1 nếu xảy ra lỗi. (Sử dụngpqerrormessageĐể truy xuất chi tiết nếu giá trị trả về là -1. Nếu giá trị bằng không, hãy đợi để viết sẵn và thử lại.)

Ứng dụng có thể chiaCopyluồng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay thành tải bộ đệm của bất kỳ kích thước thuận tiện nào. Ranh giới tải bộ đệm không có ý nghĩa ngữ nghĩa khi gửi. Nội dung của luồng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay phải khớp với định dạng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay được dự kiến ​​bởiCopylệnh; nhìn thấyCopyĐể biết chi tiết.

pqputcopyend

Gửi chỉ số cuối dữ tỷ lệ kèo bóng đá trực tuyến hôm nay đến máy chủ trong khi16959_16968Bang.

int pqputcopyend (pgconn *Conn,
                 const char *errormsg);

tỷ lệ kèo bóng đá trực tuyến hôm nay thúccopy_inHoạt động thành công nếuerrormsgnull. Nếu nhưerrormsgkhông phảinullsau đó17326_17332bị buộc phải thất bại, với chuỗi được trỏ bởierrormsg17420_17588Copyvì lý do riêng của nó. Cũng lưu ý rằng tùy chọn buộc lỗi không hoạt động khi sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay nối Pre-3.0-giao thức.)

tỷ lệ kèo bóng đá trực tuyến hôm nay quả là 1 nếu dữ liệu chấm dứt được gửi, không nếu nó không được gửi vì nỗ lực sẽ chặn (trường hợp này chỉ có thể nếu tỷ lệ kèo bóng đá trực tuyến hôm nay nối ở chế độ không chặn) hoặc -1 nếu xảy ra lỗi. (Sử dụngpqerrormessageĐể lấy chi tiết nếu giá trị trả về là -1. Nếu giá trị bằng không, hãy đợi để viết sẵn và thử lại.)

Sau khi gọi thành côngpqputcopyend, gọiPQGetResultĐể có được trạng thái tỷ lệ kèo bóng đá trực tuyến hôm nay quả cuối cùng củaCopylệnh. Người ta có thể chờ tỷ lệ kèo bóng đá trực tuyến hôm nay quả này có sẵn theo cách thông thường. Sau đó trở lại hoạt động bình thường.

31.9.2. Chức năng nhậnCopyData

tỷ lệ kèo bóng đá trực tuyến hôm nay này được sử dụng để nhận dữ liệu trong thời gianSao chép vào stdout. Họ sẽ thất bại nếu được gọi khi tỷ lệ kèo bóng đá trực tuyến hôm nay nối không ởcopy_outBang.

PQGetCopydata

Nhận dữ tỷ lệ kèo bóng đá trực tuyến hôm nay từ máy chủ trongcopy_outState.

int PQGetCopydata (PGConn *Conn,
                  Char ** Buffer,
                  int async);

cố gắng lấy một hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay khác từ máy chủ trong thời gianCopy. Dữ tỷ lệ kèo bóng đá trực tuyến hôm nay luôn được trả về một hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay tại một thời điểm; Nếu chỉ có một hàng một phần có sẵn, nó không được trả lại. Trả về thành công của một hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay liên quan đến việc phân bổ một khối bộ nhớ để giữ dữ tỷ lệ kèo bóng đá trực tuyến hôm nay. Thebộ đệmtham số phải khôngnull. *bộ đệmđược đặt để trỏ đến bộ nhớ được phân bổ hoặc đếnnullTrong trường hợp không có bộ đệm nào được trả lại. Không phảinullBộ đệm tỷ lệ kèo bóng đá trực tuyến hôm nay quả nên được giải phóng bằng cách sử dụngpqfreememKhi không cần thiết.

Khi một hàng được trả về thành công, giá trị trả về là số byte dữ tỷ lệ kèo bóng đá trực tuyến hôm nay trong hàng (điều này sẽ luôn lớn hơn 0). Chuỗi được trả về luôn được chấm dứt, mặc dù điều này có lẽ chỉ hữu ích cho văn bảnsao chép. tỷ lệ kèo bóng đá trực tuyến hôm nay quả của 0 chỉ ra rằngCopyvẫn đang được tiến hành, nhưng chưa có hàng nào có sẵn (điều này chỉ có thể khiAsynclà đúng). tỷ lệ kèo bóng đá trực tuyến hôm nay quả của -1 chỉ ra rằngCopyđược thực hiện. tỷ lệ kèo bóng đá trực tuyến hôm nay quả của -2 chỉ ra rằng xảy ra lỗi (tham khảopqerrormessageVì lý do).

KhiAsynclà đúng (không phải bằng không),PQGetCopydatasẽ không chặn chờ đầu vào; nó sẽ trả về 0 nếuCopyvẫn đang được tiến hành nhưng không có hàng hoàn chỉnh nào có sẵn. (Trong trường hợp này, hãy đợi sẵn sàng đọc và sau đó gọiPQConsumeInputTrước khi gọi20846_20861Một lần nữa.) KhiAsynclà sai (không),PQGetCopydatasẽ chặn cho đến khi có sẵn dữ tỷ lệ kèo bóng đá trực tuyến hôm nay hoặc hoạt động hoàn thành.

sauPQGetCopydatareturn -1, gọiPQGetResultĐể có được trạng thái tỷ lệ kèo bóng đá trực tuyến hôm nay quả cuối cùng củaCopylệnh. Người ta có thể chờ tỷ lệ kèo bóng đá trực tuyến hôm nay quả này có sẵn theo cách thông thường. Sau đó trở lại hoạt động bình thường.

31.9.3. tỷ lệ kèo bóng đá trực tuyến hôm nay lỗi thời choCopy

tỷ lệ kèo bóng đá trực tuyến hôm nay này đại diện cho các phương thức xử lý cũ hơnCopy. Mặc dù chúng vẫn hoạt động, nhưng chúng không được xử lý do xử lý lỗi kém, các phương pháp bất tiện trong việc phát hiện tỷ lệ kèo bóng đá trực tuyến hôm nay thúc dữ liệu và thiếu hỗ trợ cho việc chuyển nhượng nhị phân hoặc không chặn.

PQGetLine

Đọc một dòng ký tự tỷ lệ kèo bóng đá trực tuyến hôm nay thúc mới (được truyền bởi máy chủ) vào một chuỗi bộ đệm có kích thướcLEGN.

int PQGetLine (PGConn *Conn,
              Char *bộ đệm,
              int length);

Hàm này sao chép lênLEGN-1 ký tự thành bộ đệm và chuyển đổi dòng mới tỷ lệ kèo bóng đá trực tuyến hôm nay thúc thành một byte số 0.PQGetLinereturnEOFỞ cuối đầu vào, 0 nếu toàn bộ dòng đã được đọc và 1 nếu bộ đệm đầy đủ nhưng dòng mới 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 hai ký tự\., cho biết máy chủ đã hoàn thành việc gửi tỷ lệ kèo bóng đá trực tuyến hôm nay quả củaCopylệnh. Nếu ứng dụng có thể nhận tỷ lệ kèo bóng đá trực tuyến hôm nay dòng nhiều hơnLEGN-1 ký tự dài, cần quan tâm để chắc chắn rằng nó nhận ra\.22965_23070

PQGetLineAsync

Đọc một hàngCopyDữ tỷ lệ kèo bóng đá trực tuyến hôm nay (được truyền bởi máy chủ) vào bộ đệm mà không chặn.

int PQGetLineAnync (PGConn *Conn,
                   Char *bộ đệm,
                   int bufsize);

Hàm này tương tựPQGetLine, nhưng nó có thể được sử dụng bởi tỷ lệ kèo bóng đá trực tuyến hôm nay ứng dụng phải đọcCopy23594_23663CopyLệnh và nhận đượcPGRES_COPY_OUTPhản hồi, ứng dụng nên gọiPQConsumeInputPQGetLineAsyncCho đến khi phát hiện tín hiệu cuối cùng của dữ tỷ lệ kèo bóng đá trực tuyến hôm nay.

Không giống nhưPQGetLine, Hàm 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,PQGetLineAsyncSẽ trả về dữ tỷ lệ kèo bóng đá trực tuyến hôm nay nếu có sẵn một hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay hoàn chỉnh tronglibpqbộ đệm đầu vào. Mặt khác, không có dữ tỷ lệ kèo bóng đá trực tuyến hôm nay nào được trả về cho đến khi phần còn lại của hàng đến. Hàm trả về -1 nếu điểm đánh dấu dữ tỷ lệ kèo bóng đá trực tuyến hôm nay cuối sao đã được nhận dạng hoặc 0 nếu không có dữ tỷ lệ kèo bóng đá trực tuyến hôm nay hoặc một số dương đưa số byte dữ tỷ lệ kèo bóng đá trực tuyến hôm nay được trả về. Nếu -1 được trả về, người gọi phải gọi tiếp theoPQENDCOPY, sau đó trở lại xử lý bình thường.

Dữ tỷ lệ kèo bóng đá trực tuyến hôm nay được trả về sẽ không vượt ra ngoài ranh giới hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay. Nếu có thể một hàng toàn bộ sẽ được trả lại cùng một lúc. Nhưng nếu bộ đệm do người gọi cung cấp quá nhỏ để giữ một hàng được gửi bởi máy chủ, thì một hàng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay một phần sẽ được trả về. Với dữ tỷ lệ kèo bóng đá trực tuyến hôm nay văn bản, điều này có thể được phát hiện bằng cách kiểm tra xem byte cuối cùng được trả về là\ nhoặc không. (Trong một nhị phânCopy, Phân tích cú pháp thực tế củaCopyĐịnh dạng dữ tỷ lệ kèo bóng đá trực tuyến hôm nay sẽ cần thiết để đưa ra quyết định tương đương.) Chuỗi được 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 quaBufsizeMột nhỏ hơn phòng thực sự có sẵn.)

pqputline

Gửi một chuỗi tỷ lệ kèo bóng đá trực tuyến hôm nay thúc null đến máy chủ. Trả về 0 nếu ok vàEOFNếu không thể gửi chuỗi.

int pqputline (PGConn *Conn,
              const char *chuỗi);

TheCopyluồng dữ liệu được gửi bởi một loạt tỷ lệ kèo bóng đá trực tuyến hôm nay cuộc gọi đếnpqputlinecó cùng định dạng như được trả về bởiPQGetLineAsync, ngoại trừ tỷ lệ kèo bóng đá trực tuyến hôm nay ứng dụng không bắt buộc phải gửi chính xác một hàng dữ liệu cho mỗipqputlinecuộc gọi; Không sao khi gửi một dòng một phần hoặc nhiều dòng cho mỗi cuộc gọi.

Lưu ý:trướcPostgreSQLGiao thức 3.0, ứng dụng cần phải gửi rõ ràng hai ký tự\.Là một dòng cuối cùng để chỉ ra với máy chủ rằng nó đã hoàn thành việc gửiCopyDữ tỷ lệ kèo bóng đá trực tuyến hôm nay. Mặc dù điều này vẫn hoạt động, nó không được chấp nhận và ý nghĩa đặc biệt của\.có thể được loại bỏ trong một bản phát hành trong tương lai. Nó đủ để gọiPQENDCOPYSau khi gửi dữ tỷ lệ kèo bóng đá trực tuyến hôm nay thực tế.

26723_26736

Gửi một chuỗi không tỷ lệ kèo bóng đá trực tuyến hôm nay thúc không đến máy chủ. Trả về 0 nếu ok vàEOFNếu không thể gửi chuỗi.

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 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 được chỉ định trực tiếp. Sử dụng quy trình này khi gửi dữ liệu nhị phân.

PQENDCOPY

Đồng bộ hóa với máy chủ.

int pqendcopy (pgconn *Conn);

Hàm này đợi cho đến khi máy chủ hoàn thành việc sao chép. Nó sẽ được cấp khi chuỗi cuối cùng được gửi đến máy chủ bằng cách sử dụngpqputlinehoặc khi chuỗi cuối cùng được nhận từ máy chủ bằng cách sử dụngPQGetLine. Nó phải được cấp hoặc máy chủ sẽ nhận được"Out of Sync"27816_27993pqerrormessageĐể lấy chi tiết nếu giá trị trả về không khác.)

Khi sử dụngPQGetResult, Ứng dụng sẽ trả lờipgres_copy_outtỷ lệ kèo bóng đá trực tuyến hôm nay quả bằng cách thực thiPQGetLineCứu, theo sau làpqendcopySau khi thấy dòng Terminator được nhìn thấy. Sau đó nó sẽ trở lạiPQGetResultvòng lặp cho đếnPQGetResultTrả về một con trỏ null. Tương tự APGRES_COPY_INtỷ lệ kèo bóng đá trực tuyến hôm nay quả được xử lý bởi một loạtpqputlinecuộc gọi theo sau làPQENDCOPY, sau đó quay lạiPQGetResultVòng lặp. Sự sắp xếp này sẽ đảm bảo rằngCopy28850_28885SQLtỷ lệ kèo bóng đá trực tuyến hôm nay lệnh sẽ được thực thi chính xác.

28966_29010CopyViaPQEXECvà giả sử rằng giao dịch được thực hiện sauPQENDCOPY29164_29205Copylà duy nhấtSQLLệnh trong chuỗi lệnh.