시설스포츠 토토 사이트백엔드의 대형 객체에 대한 액세스를 제공합니다. 사용자 정의 함수 또는 애플리케이션의 일부인 프런트 엔드 인터페이스를 사용하는 방법은 아래에 설명되어 있습니다. 다음 사항에 익숙한 사용자의 경우포스트그레스 4.2, 포스트그레SQL새로운 기능 세트가 있습니다 보다 일관된 스포츠 토토 사이트를 제공합니다.
참고:모든 대형 객체 조작반드시SQL 내에서 발생 거래. 이 요구사항은 현재부터 엄격하게 시행됩니다.포스트그레SQL 6.5하지만 이전 버전에서는 암시적인 요구 사항이었지만 무시하면 오작동이 발생합니다.
그포스트그레SQL대형 개체
인터페이스는 다음을 모델로 합니다.유닉스파일 시스템 인터페이스, 다음과 유사함열기(2), 읽기(2), 쓰기(2), lseek(2)등. 사용자 함수는 다음을 호출합니다.
대규모 데이터에서 관심 있는 데이터만 검색하는 루틴
개체. 예를 들어, 다음과 같은 대형 객체 유형이 있는 경우머그샷얼굴 사진을 저장한 것이 존재했고,
그런 다음라는 함수수염할 수 있어요
에 선언됨머그샷데이터.수염하위 1/3을 볼 수 있습니다
사진을 찍고 나타난 수염의 색깔을 결정하십시오
거기, 있다면. 전체 대형 객체 값은 다음과 같을 필요가 없습니다.
버퍼링되거나 심지어 검사됩니다.수염함수. 큰 개체에 액세스할 수 있습니다.
동적으로 로드된 것에서C라이브러리를 연결하는 함수 또는 데이터베이스 클라이언트 프로그램.포스트그레SQL다음 세트를 제공합니다
열기, 읽기, 쓰기, 닫기 등을 지원하는 루틴
큰 물체를 찾고 있습니다.
루틴
Oid lo_creat(PGconn *콘, 정수모드)
새 대형 객체를 생성합니다.모드여러 가지를 설명하는 비트 마스크입니다. 새 개체의 다른 속성. 기호 상수 여기에 나열된 내용은 헤더 파일에 정의되어 있습니다.libpq/libpq-fs.h. 액세스 유형(읽기, 쓰기, 또는 둘 다) 비트를 함께 or'ing하여 제어됩니다.INV_READ그리고INV_WRITE. 마스크의 하위 16비트는 역사적으로 Berkeley에서 스토리지 관리자 번호를 지정하는 데 사용됩니다. 대형 개체가 상주해야 하는 곳입니다. 이 비트는 항상 지금은 0이 되어라. 아래 명령은 대형 객체를 생성합니다.
inv_oid = lo_creat(INV_READ|INV_WRITE);
운영 체제 파일을 대형 개체로 가져오려면, 전화
Oid lo_import(PGconn *콘, const char *파일 이름)
파일 이름다음을 지정합니다. 큰 파일로 가져올 파일의 운영 체제 이름 개체.
대형 개체를 운영 체제 파일로 내보내려면, 전화
int lo_export(PGconn *콘, 오이드lobjId, const char *파일 이름)
그lobjId인수가 지정함
내보낼 대형 객체의 OID 및파일 이름인수는 작동을 지정합니다.
시스템 이름 파일의 이름입니다.
기존의 대형 개체를 열려면 다음을 호출하세요.
int lo_open(PGconn *conn, Oid lobjId, int 모드)
그lobjId인수가 지정함
열려는 대형 개체의 OID입니다.모드비트는 객체가 다음인지 여부를 제어합니다.
읽기 위해 열었습니다(INV_READ), 쓰기
(INV_WRITE) 또는 둘 다. 큰 물체
생성되기 전에는 열 수 없습니다.lo_open다음에 대한 대형 개체 설명자를 반환합니다.
나중에 사용lo_read,
lo_write, lo_lseek, lo_tell및lo_close.
루틴
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대형 바이트
개체fd속으로buf.fd인수는 이전에 의해 반환되었음에 틀림없습니다lo_open. 실제로 읽은 바이트 수는 다음과 같습니다.
돌아왔다. 오류가 발생한 경우 반환 값은 다음과 같습니다.
부정.
현재 읽기 또는 쓰기 위치를 대규모로 변경하려면 객체, 호출
int lo_lseek(PGconn *conn, int fd, int offset, int whence)
이 루틴은 현재 위치 포인터를 이동합니다.
설명된 대형 객체fd에
다음으로 지정된 새 위치오프셋. 유효한 값은어디에서아르SEEK_SET,
SEEK_CUR및SEEK_END.
큰 개체는 호출을 통해 닫힐 수 있습니다.
int lo_close(PGconn *conn, int fd)
어디에서fd큰 개체입니다
에 의해 반환된 설명자lo_open.
성공하면,lo_close반환
제로. 오류가 발생하면 반환 값은 음수입니다.
데이터베이스에서 대형 개체를 제거하려면 다음을 호출하세요.
Oid lo_unlink(PGconn *콘, Oid lobjId)
그lobjId인수가 지정함
제거할 대형 객체의 OID입니다.