soi kèo bóng đá truoctran | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 29. | Chuyển tiếp nhanh | Tiếp theo |
Phần này mô tả các cơ sởsoi kèo bóng đá truoctranThư viện soi kèo bóng đá truoctranphảidiễn ra trong SQLsoi kèo bóng đá truoctran 6.5, mặc dù nó cósoi kèo bóng đá truoctransoi kèo bóng đá truoctran đối tượng lớn được mô hình hóaUNIXHệ thống tệpMở
,
đọc
, Viết
, LSEEK
,,
Ứng dụng máy khách sử dụng soi kèo bóng đá truoctran đối tượng lớn tronglibpqnên bao gồm tiêu đềlibpq/libpq-fs.hvà liên kết vớilibpqThư viện.
hàm
oid lo_creat (pgconn *Conn, int mode);
Tạo ra một phần lớn mớiModekhông được sử dụng và bỏ qua nhưsoi kèo bóng đá truoctran8.1; Tuy nhiên, choinv_read, inv_writehoặcinv_read | inv_write.libpq/libpq-fs.h.)
Một ví dụ:
inv_oid = lo_creat (Conn, inv_read | inv_write);
hàm
oid lo_create (pgconn *Conn, oid lobjid);
cũng tạo ra một cái mớilobjid; Nếu vậy, thất bại xảy ralobjidlà không hợp lệ (không)LO_CREATE
gán một không sử dụngLO_CREAT
). Giá trị trả về là OID
LO_CREATE
là mới nhưsoi kèo bóng đá truoctran8.1; Nếu điều này
Một ví dụ:
inv_oid = lo_create (Conn, mong muốn_oid);
Để nhập tệp hệ điều hành dưới dạng đối tượng lớn,
oid lo_import (pgconn *Conn, const char *filename);
Để xuất một đối tượng lớn vào tệp hệ điều hành,
int lo_export (pgconn *Conn, oid lobjid, const char *filename);
ThelobjidĐối số chỉ định oid của lớnFileNameĐối số Chỉ định tên hệ điều hành của tệp. Ghi chú
Để mở một đối tượng lớn hiện có để đọc hoặc viết,
int lo_open (pgconn *Conn, oid lobjid, int mode);
Thelobjid15469_15536Modebitinv_read), Viết (inv_write) hoặc cả hai. (Những hằng số tượng trưng nàylibpq/libpq-fs.h.) Một đối tượng lớn không thểLO_OPEN
Trả về một đối tượng lớn (không âm)lo_read
, lo_write
, lo_lseek
, LO_TELL
vàlo_close
. Bộ mô tả chỉ có giá trị cho
soi kèo bóng đá truoctran chủ hiện không phân biệt giữa các chế độinv_writevàinv_read | inv_write: bạn được phép đọc từinv_readmột mình: vớiinv_readBạn không thể viết trên mô tả vàlo_open
đã được thực thi,inv_writeTrả về dữ liệu phản ánh tất cả các ghiserializableso vớiĐọc cam kếtChế độ soi kèo bóng đá truoctran dịch cho thông thườngChọnlệnh.
Một ví dụ:
inv_fd = lo_open (Conn, inv_oid, inv_read | inv_write);
hàm
int lo_write (pgconn *Conn, int fd, const char *buf, size_t len);
Writeslenbyte từBUFđến bộ mô tả đối tượng lớnFD. TheFDĐối số phải được trả lạiLO_OPEN
. Số
hàm
int lo_read (pgconn *Conn, int fd, char *buf, size_t len);
đọclenbyte từ mô tả đối tượng lớnFDthànhBUF. TheFDĐối số phải được trả lại bởi trước đóLO_OPEN
. Số lượng byte thực sự đọc là
Để thay đổi vị trí đọc hoặc ghi hiện tại được liên kết với
int lo_lseek (pgconn *Conn, int fd, int offset, int whence);
Hàm này di chuyểnfdđến vị trí mớiOffset. Hợp lệwhencelàSeek_set(tìm kiếm từ bắt đầu đối tượng),Seek_cur(tìm kiếm từ vị trí hiện tại) vàSeek_end(tìm kiếm từ cuối đối tượng). Các
Một mô tả đối tượng lớn có thể được đóng bằng cách gọi
int lo_close (pgconn *Conn, int fd);
WHEREFDlà một mô tả đối tượng lớn được trả về bởiLO_OPEN
. Về thành công,lo_close
Trả về 0. Do lỗi, sự trở lại
Bất kỳ mô tả đối tượng lớn nào vẫn mở ở cuối
Để loại bỏ một đối tượng lớn khỏi cơ sở dữ liệu, gọi
int lo_unlink (pgconn *Conn, oid lobjid);