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 kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay vớiCopylệnh

TheCopylệnh trongPostgreSQLCó các tùy chọn để đọc hoặc viết đến kèo tỷ số bóng đá euro hôm nay nối mạng được sử dụng bởilibpq. kèo tỷ số bóng đá euro hôm nay được 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 đã sao chép.

Quy trình tổng thể là ứng dụng đầu tiên phát hành SQLCopylệnh thông quaPQEXEChoặc một trong kèo tỷ số bóng đá euro hôm nay hàm tương đương. kèo tỷ số bóng đá euro hôm nay 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 bản sao được chỉ định phương hướng). Ứng dụng sau đó nên sử dụng kèo tỷ số bóng đá euro hôm nay của điều này phần để nhận hoặc truyền các hàng dữ liệu. Khi truyền dữ liệu là Hoàn thành, người khácpgresultĐối tượng là trở lại để chỉ ra thành công hoặc thất bại của việc chuyển nhượng. Tình trạng của nó sẽ làPGRES_COMMAND_OKđể thành công hoặcPGRES_FATAL_ERRORNếu một số vấn đề là gặp phải. Tại thời điểm này, kèo tỷ số bóng đá euro hôm nay lệnh SQL có thể được cấp quaPQEXEC. (Không thể Thực hiện các lệnh SQL khác bằng cùng một kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay quả thông quaPQGetResultSau khi hoàn thànhCopyTrình tự. Chỉ khiPQGetResultreturnnullCó chắc chắn rằngPQEXEClệnh Chuỗi được hoàn thành 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 kèo tỷ số bóng đá euro hôm nay quả củaPGRES_COPY_OUThoặcPGRES_COPY_INtừPQEXEChoặcPQGetResult.

APGRESULTđối tượng mang một trong những kèo tỷ số bóng đá euro hôm nay giá trị trạng thái này mang một số dữ liệu bổ sung vềCopyHoạt động đang bắt đầu. Cái này Dữ liệu bổ sung có sẵn bằng cách sử dụng các chức năng cũng được sử dụng trong kèo tỷ số bóng đá euro hôm nay nối với kèo tỷ số bóng đá euro 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 (kèo tỷ số bóng đá euro hôm nay hàng được phân tách bởi NewLines, kèo tỷ số bóng đá euro hôm nay cột được phân tách bằng kèo tỷ số bóng đá euro 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) với mỗi cột của hoạt động sao chép. 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ỉ kèo tỷ số bóng đá euro hôm nay cột nhị phân xuất hiện trong một bản sao nhị phân; Vì vậy, kèo tỷ số bóng đá euro 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ể tại hiện tại.)

Lưu ý:Những 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ả những thứ này kèo tỷ số bóng đá euro hôm nay sẽ trả về 0.

31.9.1. Chức năng gửiCopyData

kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay nối không ởcopy_inState.

PQPutCopydata

Gửi dữ kèo tỷ số bóng đá euro hôm nay đến máy chủ trong thời giancopy_inBang.

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

TruyềnCopyDữ kèo tỷ số bóng đá euro hôm nay trong được chỉ địnhbộ đệm, độ dàinbyte, đến máy chủ. kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay nối không bị chặn chế độ), hoặc -1 nếu xảy ra lỗi. (Sử dụngpqerrormessageĐể lấy chi tiết nếu sự trở lại Giá trị 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ữ kèo tỷ số bóng đá euro hôm nay thành tải bộ đệm của bất kỳ kích thước thuận tiện nào. Tải bộ đệm Ranh giới không có ý nghĩa ngữ nghĩa khi gửi. Nội dung của luồng dữ kèo tỷ số bóng đá euro hôm nay phải khớp với định dạng dữ kèo tỷ số bóng đá euro hôm nay được mong đợi bởiCopylệnh; nhìn thấyCopyĐể biết chi tiết.

pqputcopyend

Gửi chỉ số cuối dữ kèo tỷ số bóng đá euro hôm nay đến máy chủ trong thời giancopy_inBang.

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

kèo tỷ số bóng đá euro hôm nay thúccopy_inHoạt động thành công nếu nhưerrormsgnull. Nếu nhưerrormsgkhông phảinullsau đóCopybị buộc phải thất bại, với chuỗi được trỏ bởierrormsgĐược sử dụng làm thông báo lỗi. (Một người nên không cho rằng thông báo lỗi chính xác này sẽ trở lại từ Máy chủ, tuy nhiên, vì máy chủ có thể đã thất bạiCopyvì 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 kèo tỷ số bóng đá euro hôm nay nối Pre-3.0 Protocol.)

kèo tỷ số bóng đá euro 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ỉ là có thể nếu kèo tỷ số bóng đá euro hôm nay nối ở chế độ không chặn) hoặc -1 nếu một 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ị là Không, đợ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 kèo tỷ số bóng đá euro hôm nay quả cuối cùng của TheCopyLệnh. Người ta có thể chờ đợi điều này kèo tỷ số bóng đá euro hôm nay quả sẽ có sẵn theo cách thông thường. Sau đó trở lại bình thường hoạt động.

31.9.2. Chức năng nhậnCopyData

kèo tỷ số bóng đá euro 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 kèo tỷ số bóng đá euro hôm nay nối không ởCopy_outBang.

PQGetCopydata

18988_19027copy_outBang.

19093_19189

cố gắng lấy một hàng dữ kèo tỷ số bóng đá euro hôm nay khác từ máy chủ trong thời gianCopy. Dữ kèo tỷ số bóng đá euro hôm nay luôn được trả về một hàng dữ kèo tỷ số bóng đá euro 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ả lại thành công của một hàng dữ kèo tỷ số bóng đá euro hôm nay liên quan đến việc phân bổ một khối bộ nhớ để giữ dữ kèo tỷ số bóng đá euro hôm nay. The19510_19518tham số phải khôngnull. *bộ đệmđược đặt để trỏ đến bộ nhớ được phân bổ, hoặc tonullTrong trường hợp không có bộ đệm nào trả lại. Không phảinullBộ đệm kèo tỷ số bóng đá euro hôm nay quả nên được giải phóng bằng cách sử dụngpqfreememKhi không lâu hơn cần thiết.

Khi một hàng được trả về thành công, giá trị trả về là Số lượng byte dữ liệu trong hàng (điều này sẽ luôn lớn hơn không). Chuỗi được trả về luôn luôn kèo tỷ số bóng đá euro hôm nay thúc, mặc dù điều này có lẽ chỉ hữu ích cho văn bảnCopy. kèo tỷ số bóng đá euro hôm nay quả của 0 chỉ ra rằngsao chépvẫn đang được tiến hành, nhưng chưa có hàng nào có sẵn (điều này chỉ là có thể khiAsynclà đúng). Một kèo tỷ số bóng đá euro hôm nay quả của -1 chỉ ra rằngCopyđược thực hiện. MỘT kèo tỷ số bóng đá euro 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ờ cho đầ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 này trường hợp chờ đọc sẵn sàng và sau đó gọiPQConsumeInputTrước khi gọiPQGetCopydataMột lần nữa.) KhiAsynclà sai (không),PQGetCopydataSẽ chặn cho đến khi dữ kèo tỷ số bóng đá euro hôm nay có sẵn hoặc hoạt động hoàn thành.

21093_21101PQGetCopydatareturn -1, gọiPQGetResultĐể có được trận chung kèo tỷ số bóng đá euro hôm nay Trạng thái kèo tỷ số bóng đá euro hôm nay quả củaCopylệnh. Một người có thể Đợi kèo tỷ số bóng đá euro 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. kèo tỷ số bóng đá euro hôm nay lỗi thời choCopy

kèo tỷ số bóng đá euro 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 Do xử lý lỗi kém, các phương pháp phát hiện bất tiện kèo tỷ số bóng đá euro hôm nay thúc dữ liệu và thiếu hỗ trợ cho nhị phân hoặc không chặn chuyển nhượng.

PQGetLine

Đọc một dòng ký tự kèo tỷ số bóng đá euro hôm nay thúc mới (được truyền đi bởi máy chủ) thành chuỗi bộ đệm có kích thướclength.

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

Hàm này sao chép lênlength-1 ký tự thành bộ đệm và chuyển đổi dòng mới kèo tỷ số bóng đá euro hôm nay thúc vào một byte bằng không.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 kèo tỷ số bóng đá euro hôm nay thúc Newline chưa được đọc.

22608_22699\., mà Cho biết rằng máy chủ đã hoàn thành việc gửi kèo tỷ số bóng đá euro hôm nay quả củaCopyLệnh. Nếu ứng dụng có thể nhận kèo tỷ số bóng đá euro hôm nay dòng nhiều hơnlength-1 ký tự dài, cần phải quan tâm Chắc chắn nó nhận ra\.dòng chính xác (và không, ví dụ, sai lầm của một dòng dữ kèo tỷ số bóng đá euro hôm nay dài cho một dòng Terminator).

PQGetLineAsync

Đọc một hàngCopyDữ kèo tỷ số bóng đá euro hôm nay (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ự23555_23566, nhưng nó có thể được sử dụng bởi kèo tỷ số bóng đá euro hôm nay ứng dụng phải đọcCopyDữ kèo tỷ số bóng đá euro hôm nay không đồng bộ, Đó là, mà không chặn. Đã phát hànhCopyLệnh và nhận đượcPGRES_COPY_OUTPhản hồi, ứng dụng nên gọiPQConsumeInputPQGetLineAsyncCho đến khi tín hiệu cuối cùng của dữ kèo tỷ số bóng đá euro hôm nay đã phát hiện.

Không giống nhưPQGetLine, Hàm này Chịu trách nhiệm phát hiện kèo tỷ số bóng đá euro hôm nay thúc dữ liệu.

trên mỗi cuộc gọi,PQGetLineAsyncWill Trả về dữ kèo tỷ số bóng đá euro hôm nay nếu một hàng dữ kèo tỷ số bóng đá euro hôm nay hoàn chỉnh có sẵn tronglibpqbộ đệm đầu vào. Nếu không, không có dữ kèo tỷ số bóng đá euro hôm nay nào trở lại 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ữ kèo tỷ số bóng đá euro hôm nay cuối cùng đã được nhận dạng hoặc 0 nếu không có dữ kèo tỷ số bóng đá euro hôm nay có sẵn hoặc một số dương đưa số byte dữ kèo tỷ số bóng đá euro hôm nay được trả về. Nếu -1 được trả về, người gọi phải gọi tiếp theoPQENDCOPY24604_24645

24651_24982\ nhay không. (Trong một nhị phânCopy, Phân tích cú pháp thực tế củaCopyđịnh dạng dữ kèo tỷ số bóng đá euro hôm nay sẽ cần xác định tương đươ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 ABufsizeMột nhỏ hơn phòng thực sự có sẵn.)

pqputline

Gửi một chuỗi kèo tỷ số bóng đá euro 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 của kèo tỷ số bóng đá euro hôm nay cuộc gọi đếnpqputlinecó cùng định dạng khi được trả về bởiPQGetLineAsync, ngoại trừ kèo tỷ số bóng đá euro 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; Gửi một dòng một phần là ổn hoặc nhiều dòng cho mỗi cuộc gọi.

Lưu ý:trướcPostgreSQLGiao thức 3.0, cần thiết cho ứng dụng một cách rõ ràng Gửi hai ký tự\.như một dòng cuối cùng để cho máy chủ rằng nó đã gửi xongCopyDữ kèo tỷ số bóng đá euro hôm nay. Trong khi điều này vẫn hoạt động, nó không được và ý nghĩa đặc biệt của\.có thể dự kiến ​​sẽ được gỡ bỏ trong một bản phát hành trong tương lai. Nó là đủ để gọiPQENDCOPYsau khi đã gửi Dữ kèo tỷ số bóng đá euro hôm nay thực tế.

pqputnbytes

Gửi một chuỗi không kèo tỷ số bóng đá euro 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 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ừ việc bộ đệm dữ liệu không cần phải kèo tỷ số bóng đá euro hôm nay thúc vì Số byte để gửi được chỉ định trực tiếp. Sử dụng thủ tục 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 phát hành khi chuỗi cuối cùng đã được gửi đến máy chủ sử dụngpqputlinehoặc khi nào Chuỗi cuối cùng đã được nhận từ máy chủ bằng cách sử dụngPGGetLine. Nó phải được phát hành hoặc Máy chủ sẽ nhận được"Out of Sync"với khách hàng. Khi trở về từ chức năng này, máy chủ đã sẵn sàng Nhận lệnh SQL tiếp theo. Giá trị trả lại là 0 trên thành công Hoàn thành, khác không. (Sử dụngpqerrormessageĐể lấy chi tiết nếu trả về giá trị là không khác nhau.)

Khi sử dụngPQGetResult, The Ứng dụng sẽ trả lờiPGRES_COPY_OUTkèo tỷ số bóng đá euro 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. Nó sau đó sẽ trở lạiPQGetResultVòng lặp cho đếnPQGetResultTrả về một null con trỏ. Tương tự APGRES_COPY_INkèo tỷ số bóng đá euro hôm nay quả được xử lý bởi một loạtpqputlinecuộc gọi theo sau làPQENDCOPY, sau đó trở lạiPQGetResultVòng lặp. Cái này sự sắp xếp sẽ đảm bảo rằng mộtCopyLệnh được nhúng trong một loạtSQLkèo tỷ số bóng đá euro hôm nay lệnh sẽ được thực thi chính xác.

kèo tỷ số bóng đá euro hôm nay ứng dụng cũ có khả năng gửiCopyViaPQEXECvà Giả sử rằng giao dịch được thực hiện sauPQENDCOPY. Điều này sẽ chỉ hoạt động chính xác nếu29301_29307là duy nhấtSQLLệnh trong chuỗi lệnh.