Postgresql 9.0.23 Tài cách đọc kèo bóng đá | ||||
---|---|---|---|---|
Prev | UP | Chương 31.libpq- C Thư viện | Tiếp theo |
PostgreSQLcung cấp a cách đọc kèo bóng đá dẫn nhanh để gửi các cuộc gọi chức năng đơn giản đến máy chủ.
Tip:cách đọc kèo bóng đá này có phần lỗi thời, như một 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 tuyên bố với truyền nhị phân của tham số và kết quả thay thế cho hàm đường nhanh gọi.
hàmPQFN
Yêu cầu
thực hiện chức năng máy chủ thông qua cách đọc kèo bóng đá 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 chức năng sẽ được thực thi.argsvàNARGSXác định các tham số sẽ được được truyền cho chức năng; Họ phải phù hợp với hàm được khai báo Danh sách đối số. KhiisintTrường của Một 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ữ cách đọc kèo bóng đá phải ở định dạng mà máy chủ dự kiến Truyền kiểu dữ cách đọc kèo bóng đá đối số của chức năng. (The Tuyên bốU.PTRlà loạiint *là lịch sử; Nó sẽ tốt hơn để Hãy xem xét nóvoid *.)result_bufchỉ vào bộ đệm trong đó Đặt giá trị trả về của hàm. Người gọi phải được phân bổ đủ không gian để lưu trữ giá trị trả lại. (Không có séc!) Độ dài kết quả thực tế trong byte sẽ được trả về trong số nguyên chỉ bằngresult_len. Nếu 2- hoặc Kết quả số nguyên 4 byte dự kiến, được đặtresult_is_intthành 1, nếu không sẽ đặt 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 4 byte Số nguyên được chuyển vào*result_bufĐối với kích thước kết quả được phép. Khiresult_is_intlà 0, byte định dạng nhị phân Chuỗi đượ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_bufnhư thuộc loạivoid *.)
PQFN
Luôn trả về hợp lệPGRESULTCon trỏ. 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 là
chịu trách nhiệm giải phóngpgresultvớiPQClear
Khi nó không còn nữa
cần thiết.
Lưu ý rằng không thể xử lý các đối số null, null Kết quả, cũng không có kết quả có giá trị khi sử dụng cách đọc kèo bóng đá này.