kèo bóng đá pháp 9.3.25 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 32. kèo bóng đá pháp | Tiếp theo |
Phần này mô tả các cơ sởkèo bóng đá pháp'slibpqThư viện kèo bóng đá pháp cung cấp chokèo bóng đá phápkèo bóng đá pháp đối tượng lớn được mô hình hóaUNIXHệ thống tệpMở
,
đọc
, Viết
, LSEEK
,
Tất cả các thao tác đối tượng kèo bóng đá pháp bằng cách sử dụng các chức năng nàyphảidiễn ra trong SQL
Nếu xảy ra lỗi trong khi thực hiện bất kỳ một trong những chức năng này,pqerrormessage
.
Ứng dụng kèo bóng đá pháp sử dụng các chức năng này nên bao gồmlibpq/libpq-fs.hvà liên kếtlibpqThư viện.
hàm
oid lo_creat (pgconn *Conn, int mode);
Tạo một đối tượng kèo bóng đá pháp mới. Giá trị trả lại là OID làkhông hợp lệ(không) về thất bại.Modekhông được sử dụng và bỏ qua nhưkèo bóng đá pháp8.1; Tuy nhiên, cho lạc hậuinv_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 đối tượng kèo bóng đá pháp mới. OID được gán có thểlobjid; Nếu vậy, thất bạilobjidlàkhông hợp lệ(không) sau đólo_create
gán OID không sử dụng (điều này giống nhauLO_CREAT
). Sự trở lạikhông hợp lệ(không) về thất bại.
LO_CREATE
là mới nhưkèo bóng đá pháp8.1; Nếu chức năng nàykhông hợp lệ.
Một ví dụ:
inv_oid = lo_create (Conn, desired_oid);
Để nhập tệp hệ điều hành dưới dạng đối tượng kèo bóng đá pháp, hãy gọi
oid lo_import (pgconn *Conn, const char *filename);
FileNameChỉ định hoạt độngkhông hợp lệ(không) về thất bại. Lưu ý rằng
hàm
oid lo_import_with_oid (pgconn *Conn, const char *filename, oid lobjid);
Cũng nhập một đối tượng kèo bóng đá pháp mới. OID được gán có thểlobjid; Nếu vậy, thất bạilobjidlàkhông hợp lệ(không) sau đólo_import_with_oid
gán OID không sử dụng (đây làLO_IMPORT
). Cáckhông hợp lệ(không) về thất bại.
lo_import_with_oid
là mới nhưkèo bóng đá pháp8.4 và sử dụngLO_CREATE
Nội bộ là mới trongkhông hợp lệ.
Để xuất một đối tượng kèo bóng đá pháp vào tệp hệ điều hành, gọi
int lo_export (pgconn *Conn, oid lobjid, const char *filename);
ThelobjidĐối số chỉ định OIDFileNameĐối số chỉ định hệ điều hành
Để mở một đối tượng kèo bóng đá pháp hiện có để đọc hoặc viết,
int lo_open (pgconn *Conn, oid lobjid, int mode);
ThelobjidĐối số chỉ định OIDModeĐiều khiển bit xem đối tượng có được mở để đọc không (inv_read), Viết (inv_write) hoặc cả hai. (Những hằng số tượng trưng này làlibpq/libpq-fs.h.)LO_OPEN
Trả về một đối tượng kèo bóng đá pháp (không âm)lo_read
,
lo_write
, lo_lseek
, LO_LSEEK64
, lo_tell
, LO_TELL64
,
LO_TRUNCATE
, LO_TRUNCATE64
vàlo_close
. Mô tả chỉ có giá trị cho
Máy 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ênLO_OPEN
đã được thực thi,inv_writeTrả về dữ liệu phản ánh tất cả các văn bản của các cam kết khácĐọc lặp lạiso vớiĐọc cam kếtChế độ giao dịchChọ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(phải có kích thướclen) đến mô tả đối tượng kèo bóng đá phápFD. TheFDĐối sốLO_OPEN
. Số lượng byte thực sự được viết làlenTrừ khi có lỗi). Trong
mặc dùlentham số làsize_t, chức năng này sẽ từ chốiint_max. TRONG
hàm
int lo_read (pgconn *Conn, int fd, char *buf, size_t len);
đọc lên đếnlenByte từ kèo bóng đá phápFDthànhBUF(phải có kích thướclen). ThefdĐối sốlo_open
. Số lượng byte thực sự đọc làlenNếu
mặc dùlentham số làsize_t, chức năng này sẽ từ chốiint_max. TRONG
Để thay đổi vị trí đọc hoặc ghi hiện tại được liên kết với A
int lo_lseek (pgconn *Conn, int fd, int offset, int whence);
Hàm này di chuyển con trỏ vị trí hiện tại cho kèo bóng đá phápFDđếnOffset.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). Sự trở lại
Khi xử lý các đối tượng kèo bóng đá pháp có thể vượt quá kích thước 2GB,
21223_21297
Hàm này có hành vi giống nhưLO_LSEEK
, nhưng nó có thể chấp nhậnOffsetkèo bóng đá pháp hơn 2GB và/hoặc cung cấp kết quảlo_lseek
Sẽ thất bại nếu con trỏ vị trí mới sẽ kèo bóng đá pháp hơn
LO_LSEEK64
là mới nhưkèo bóng đá pháp9.3. Nếu chức năng này
Để có được vị trí đọc hoặc ghi hiện tại của một đối tượng kèo bóng đá pháp
int lo_tell (pgconn *Conn, int fd);
Nếu có lỗi, giá trị trả về là -1.
Khi xử lý các đối tượng kèo bóng đá pháp có thể vượt quá kích thước 2GB,
PG_INT64 LO_TELL64 (PGCONN *Conn, Int FD);
Hàm này có cùng hành vi nhưlo_tell
, nhưng nó có thể mang lại kết quả kèo bóng đá pháp hơnlo_tell
Sẽ thất bại nếu
LO_TELL64
là mới nhưkèo bóng đá pháp9.3. Nếu chức năng này
Để cắt một đối tượng kèo bóng đá pháp thành một độ dài nhất định, gọi
int lo_truncate (pgcon *Conn, int fd, size_t len);
Hàm này cắt giảm mô tả đối tượng kèo bóng đá phápFDto Longlen. TheFDĐối số phải được trả lại bởi mộtLO_OPEN
. Nếu nhưlenkèo bóng đá pháp hơn dòng điện của đối tượng kèo bóng đá pháplo_truncate
Trả về 0. Do lỗi, sự trở lại
Vị trí đọc/ghi được liên kết với bộ mô tảFDkhông thay đổi.
mặc dùlentham số làsize_t, LO_TRUNCATE
sẽ từ chối các giá trị độ dài kèo bóng đá pháp hơnint_max.
Khi xử lý các đối tượng kèo bóng đá pháp có thể vượt quá kích thước 2GB,
int lo_truncate64 (pgcon *Conn, int fd, pg_int64 len);
Hàm này có hành vi tương tự nhưlo_truncate
, nhưng nó có thể chấp nhậnlenGiá trị vượt quá 2GB.
lo_truncate
là mới nhưkèo bóng đá pháp8.3; Nếu chức năng này
LO_TRUNCATE64
là mới nhưkèo bóng đá pháp9.3; Nếu chức năng này
Một mô tả đối tượng kèo bóng đá pháp 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 kèo bóng đá phápLO_OPEN
. Về thành công,lo_close
Trả về 0. Về lỗi,
Bất kỳ mô tả đối tượng kèo bóng đá pháp nào vẫn mở ở cuối A của A
Để xóa một đối tượng kèo bóng đá pháp khỏi cơ sở dữ liệu, gọi
int lo_unlink (pgconn *Conn, oid lobjid);
ThelobjidĐối số chỉ định OID