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

33.7. kèo bóng đá hôm nay và ngày mai

PostgreSQLCung cấp kèo bóng đá hôm nay và ngày mai để gửi các cuộc gọi chức năng đơn giản đến máy chủ.

tip

Giao kèo bóng đá hôm nay và ngày mai này có phần lỗi thời, vì người ta có thể đạt được hiệu suất tương tự và chức năng lớn hơn bằng cách thiết lập một câu lệnh đã chuẩn bị để xác định cuộc gọi chức năng. Sau đó, thực hiện câu lệnh bằng truyền nhị phân của các tham số và kết quả thay thế cho một cuộc gọi hàm đường nhanh.

hàmPQFNYêu cầu thực hiện chức năng máy chủ thông qua kèo bóng đá hôm nay và ngày mai dẫn nhanh:

pgresult *pqfn (pgconn *Conn,
               int fnid,
               int *result_buf,
               int *result_len,
               int result_is_int,
               const pqargblock *args,
               int nargs);

Cấu trúc typedef

    int len;
    int isint;
    Liên minh

        int *ptr;
        Int Integer;
     u;
 Pqargblock;

ThefnidĐối số là oid của hàm sẽ được thực thi.argsNARGS12291_12408isintTrường của cấu trúc tham số là đúng,U.IntegerGiá trị được gửi đến máy chủ dưới dạng số nguyên của độ dài được chỉ định (đây phải là 2 hoặc 4 byte); Hoán đổi byte thích hợp xảy ra. Khiisintlà sai, số byte được chỉ định tại*U.Ptrđược gửi không có xử lý; Dữ liệu phải ở định dạng mà máy chủ dự kiến ​​để truyền nhị phân của kiểu dữ liệu đối số của hàm. (Tuyên bố củaU.PTRlà loạiint *là lịch sử; Sẽ tốt hơn nếu xem xét nóvoid *.)result_buftrỏ vào bộ đệm để đặt giá trị trả về của hàm. Người gọi phải phân bổ đủ không gian để lưu trữ giá trị trả về. (Không có kiểm tra!) Độ dài kết quả thực tế trong byte sẽ được trả về trong số nguyên được trỏ bởiresult_len. Nếu dự kiến ​​kết quả số nguyên 2 hoặc 4 byte, hãy đặtresult_is_intthành 1, nếu không sẽ đặt nó thành 0. Cài đặtresult_is_intđến 1 Nguyên nhânlibpqĐể hoán đổi giá trị nếu cần thiết, để nó được phân phối dưới dạng thích hợpintGiá trị cho máy khách; Lưu ý rằng một số nguyên 4 byte được chuyển vào*result_bufĐối với kích thước kết quả được phép. Khiresult_is_intlà 0, chuỗi byte định dạng nhị phân được gửi bởi máy chủ được trả về không sửa đổi. (Trong trường hợp này tốt hơn là nên xem xétresult_buf14236_14256void *.)

PQFNLuôn trả về một hợp lệpgresultCon trỏ, có trạng tháiPGRES_COMMAND_OKĐể thành công hoặcPGRES_FATAL_ERRORNếu gặp một số vấn đề. Trạng thái kết quả nên được kiểm tra trước khi kết quả được sử dụng. Người gọi chịu trách nhiệm giải phóngPGRESULTvớiPQClearKhi nó không còn cần thiết nữa.

Để chuyển đối số null cho hàm, đặtlenTrường của cấu trúc tham số đó thành-1; TheisintuCác trường sau đó không liên quan. (Nhưng điều này chỉ hoạt động trong các kết nối kèo bóng đá hôm nay và ngày mai thức 3.0 trở lên.)

Nếu hàm trả về null,*result_lenđược đặt thành-1*result_bufkhông được sửa đổi. (Điều này chỉ hoạt động trong kèo bóng đá hôm nay và ngày mai thức 3.0 và các kết nối sau; trong kèo bóng đá hôm nay và ngày mai thức 2.0, không*result_lencũng không*result_bufđược sửa đổi.)

Lưu ý rằng không thể xử lý các kết quả có giá trị được đặt khi sử dụng giao kèo bóng đá hôm nay và ngày mai này. Ngoài ra, hàm phải là hàm đơn giản, không phải là tổng hợp, hàm cửa sổ hoặc thủ tục.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong kèo bóng đá hôm nay và ngày mai liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề kèo bóng đá hôm nay và ngày mai liệu.