이 섹션은 시설에 대해 설명합니다스포츠 토토 결과클라이언트 스포츠 토토 결과 라이브러리
큰 물체에 액세스 할 수 있도록 제공하십시오. 모든 큰 대상
이러한 기능을 사용한 조작필수SQL 내에서 발생합니다
거래 블록. 그만큼스포츠 토토 결과큰 객체 스포츠 토토 결과가 모델링되었습니다
이후unix파일 시스템
스포츠 토토 결과, 아날로그가있는Open
,
읽기
, 쓰기
, lseek
,
등.
큰 객체 스포츠 토토 결과를 사용하는 클라이언트 응용 프로그램libpq헤더를 포함해야합니다 파일libpq/libpq-fs.h와 링크libpq도서관.
함수
OID LO_CREAT (PGCONN *CONN, Int MODE);
새로운 큰 객체를 만듭니다. 반환 값은 OID입니다 새로운 큰 대상에 할당되거나Invalidoid(0) 실패시.모드사용하지 않고 무시됩니다스포츠 토토 결과8.1; 그러나 이전 릴리스와의 뒤로 호환성을 설정하는 것이 가장 좋습니다.inv_read, inv_write또는inv_read | inv_write. (이 상징적 상수는 헤더 파일에 정의됩니다libpq/libpq-fs.h.)
예 :
inv_oid = lo_creat (conn, inv_read | inv_write);
함수
oid lo_create (pgconn *conn, oid lobjid);
또한 새로운 큰 객체를 만듭니다. 할당 할 OID는 할 수 있습니다
에 의해 지정됩니다.lobjid; 그렇다면,
해당 OID가 이미 크게 사용중인 경우 실패가 발생합니다.
물체. 만약에lobjidisinvalidoid(0) 그런 다음lo_create
사용하지 않은 OID를 할당합니다 (이것은입니다
와 동일한 행동lo_creat
). 그만큼
반환 값은 새로운 대형에 할당 된 OID입니다.
물체, 또는Invalidoid(0) on
실패.
lo_create
스포츠 토토 결과8.1; 이 경우
기능은 이전 서버 버전에 대해 실행되며 실패합니다.
그리고 반환Invalidoid.
예 :
inv_oid = lo_create (conn, destired_oid);
운영 체제 파일을 큰 개체로 가져 오려면 부르다
oid lo_import (pgconn *conn, const char *filename);
filename파일의 운영 체제 이름은 큰 것으로 가져올 파일의 이름 물체. 반환 값은 새로운 큰 대상, 또는Invalidoid(0) 실패에. 클라이언트 스포츠 토토 결과에서 파일을 읽습니다. 서버가 아닌 라이브러리; 따라서 클라이언트 파일에 존재해야합니다 시스템 및 클라이언트 응용 프로그램에서 읽을 수 있습니다.
함수
OID LO_IMPORT_WITH_OID (PGCONN *CONN, CONST Char *Filename, Oid Lobjid);
또한 새로운 큰 객체를 가져옵니다. 할당 할 OID는 할 수 있습니다
에 의해 지정됩니다.lobjid; 그렇다면,
해당 OID가 이미 크게 사용중인 경우 실패가 발생합니다.
물체. 만약에lobjidisInvalidoid(0) 그런 다음lo_import_with_oid
사용하지 않은 OID를 할당합니다
(이것은와 같은 행동입니다.lo_import
). 반환 값은 OID입니다
새로운 큰 대상에 할당되거나Invalidoid(0) 실패시.
lo_import_with_oid
새로운 AS
의스포츠 토토 결과8.4 및 사용lo_create
내부적으로 새로운
8.1에서; 이 기능이 8.0 또는 이전에 실행되면
실패 및 반환Invalidoid.
큰 개체를 운영 체제 파일로 내보내려면, 부르다
int lo_export (pgconn *conn, oid lobjid, const char *filename);
thelobjid인수를 지정합니다 내보내기위한 큰 물체의 OID 및filename인수는 작동을 지정합니다 파일의 시스템 이름. 파일은 서버가 아닌 클라이언트 스포츠 토토 결과 라이브러리. 1 on을 반환합니다 성공, -1 실패.
읽기 또는 쓰기를위한 기존의 큰 물체를 열려면, 부르다
int lo_open (pgconn *conn, oid lobjid, int mode);
thelobjid인수를 지정합니다
큰 물체의 OID가 열립니다. 그만큼모드비트 객체가 열리는지 여부를 제어합니다
읽기 (inv_read), 쓰기
(inv_write) 또는 둘 다. (이 상징적
상수는 헤더 파일에 정의됩니다libpq/libpq-fs.h.) 큰 객체는 될 수 없습니다
생성되기 전에 열렸습니다.lo_open
(음성) 큰 물체를 반환합니다
나중에 사용하기위한 설명자lo_read
, lo_write
, lo_lseek
, lo_tell
및lo_close
. 설명자는 유효합니다
현재 거래 기간. 실패시 -1입니다
반품.
서버는 현재 모드를 구별하지 않습니다inv_writeandinv_read | inv_write: 당신은에서 읽을 수 있습니다
두 경우 모두 설명자. 그러나 중요한 것이 있습니다
이 모드의 차이와inv_read혼자 : withinv_read당신은 디스크립터에 글을 쓸 수 없습니다
그것에서 읽은 데이터는 큰 내용을 반영합니다.
활성화 된 트랜잭션 스냅 샷 당시 객체
언제lo_open
실행되었습니다.
나중에이 거래 또는 다른 거래에 의해 쓰여지더라도.
서술자에서 읽은 독서inv_write모든 쓰기를 반영하는 데이터를 반환합니다
다른 커밋 된 거래와
현재 거래. 이것은의 행동과 유사합니다반복 가능한 읽기versusCommitted일반적인 거래 모드
SQLselect명령.
예 :
inv_fd = lo_open (conn, inv_oid, inv_read | inv_write);
함수
int lo_write (pgconn *conn, int fd, const char *buf, size_t len);
쓰기Len바이트buf큰 객체 설명 자에게FD. 그만큼FD인수
이전에 의해 반환되었을 것입니다.lo_open
. 실제로 작성된 바이트 수
반환됩니다. 오류가 발생한 경우 반환 값은
부정적인.
함수
int lo_read (pgconn *conn, int fd, char *buf, size_t len);
읽기Len큰 물체의 바이트
설명자FDinbuf. 그만큼FD인수는 이전에 의해 반환되었을 것입니다lo_open
. 실제로 읽은 바이트의 수는입니다
반환. 오류가 발생한 경우 반환 값은
부정적인.
와 관련된 현재 읽기 또는 쓰기 위치를 변경하려면 큰 객체 설명자, Call
int lo_lseek (pgconn *conn, int fd, int offset, int whence);
이 함수는 현재 위치 포인터를 이동합니다 에 의해 식별 된 큰 객체 설명자FD오프셋. 에 대한 유효한 값WHENCEareseek_set(개체 시작에서 찾으십시오),seek_cur(현재 위치에서 찾으십시오) 및seek_end(객체 끝에서 찾으십시오). 반환 값 새로운 위치 포인터 또는 오류의 -1입니다.
대형의 현재 읽기 또는 쓰기 위치를 얻으려면 객체 설명 자, 호출
int lo_tell (pgconn *conn, int fd);
오류가 있으면 반환 값이 음수입니다.
주어진 길이에 큰 물체를 자르려면
int lo_truncate (pgcon *conn, int fd, size_t len);
큰 객체 디스크립터를 자르기FD길이Len.
그만큼FD논쟁이 있었을 것입니다
이전에 의해 반환lo_open
.
만약에Len는 전류보다 큽니다
큰 물체 길이, 큰 물체는 null로 확장됩니다.
바이트 ( '\ 0').
파일 오프셋이 변경되지 않았습니다.
성공lo_truncate
반환
영. 오류시 반환 값이 음수입니다.
lo_truncate
새로스포츠 토토 결과8.3; 이 경우
기능은 이전 서버 버전에 대해 실행되며 실패합니다.
그리고 부정적인 가치를 반환합니다.
큰 객체 설명자는 호출하여 닫을 수 있습니다
int lo_close (pgconn *conn, int fd);
여기서FD큰 대상입니다
설명 자lo_open
.
성공에,lo_close
반환
영. 오류시 반환 값이 음수입니다.
끝에 열려있는 대상 설명 자 거래가 자동으로 닫힙니다.
데이터베이스에서 큰 객체를 제거하려면 전화
int lo_unlink (pgconn *conn, oid lobjid);
thelobjid인수를 지정합니다 제거 할 큰 물체의 OID. 성공하면 1, -1을 반환합니다 실패에.