이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음에 대한 동일한 와이즈 토토지를 보고 싶을 수도 있습니다.스포츠 토토 베트맨 : 문서 : 17 : 33.3. 스포츠 토토 베트맨 인터페이스버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

28.3. 클라이언트 인터페이스

이 섹션에서는 다음 시설에 대해 설명합니다.포스트그레SQL클라이언트 와이즈 토토 라이브러리 큰 개체에 대한 액세스를 제공합니다. 모든 대형 개체 이러한 기능을 사용한 조작반드시SQL 내에서 발생 거래 블록. (이 요구 사항은 현재 엄격하게 적용됩니다.포스트그레SQL 6.5, 하지만 이전 버전에서는 암묵적인 요구 사항이었으며, 그 결과 무시하면 잘못된 행동입니다.) The포스트그레SQL대형 객체 와이즈 토토가 모델링되었습니다. 이후에유닉스파일 시스템 인터페이스, 다음과 유사함열기, 읽기, 쓰기, lseek, 등

대형 객체 와이즈 토토를 사용하는 클라이언트 애플리케이션libpq헤더를 포함해야 합니다 파일libpq/libpq-fs.h그리고 다음과 연결libpq도서관.

28.3.1. 대형 객체 생성

함수

Oid lo_creat(PGconn *conn, int 모드);

새로운 대형을 생성합니다 개체.모드비트 마스크입니다 새 객체의 여러 가지 다른 속성을 설명합니다. 는 여기에 나열된 기호 상수는 헤더 파일에 정의되어 있습니다.libpq/libpq-fs.h. 액세스 유형 (읽기, 쓰기 또는 둘 다)은 or'ing으로 제어됩니다. 비트INV_READ그리고INV_WRITE. 마스크의 하위 16비트 역사적으로 버클리에서는 다음을 지정하는 데 사용되었습니다. 대형 객체가 상주해야 하는 스토리지 관리자 번호입니다. 이제 이 비트는 항상 0이어야 합니다. 반환 값은 새 대형 개체에 할당된 OID입니다.

예:

inv_oid = lo_creat(INV_READ|INV_WRITE);

28.3.2. 대형 개체 가져오기

운영 체제 파일을 대형 개체로 가져오려면, 전화

Oid lo_import(PGconn *conn, const char *filename);

파일 이름운영 체제를 지정합니다. 대형 개체로 가져올 파일의 이름입니다. 반환 값은 새 대형 개체에 할당된 OID입니다.

28.3.3. 대형 개체 내보내기

대형 개체를 운영 체제 파일로 내보내려면, 전화

int lo_export(PGconn *conn, Oid lobjId, const char *filename);

lobjId인수는 대형 OID를 지정합니다. 내보낼 객체 및파일 이름인수는 운영 체제 이름 이름을 지정합니다. 파일.

28.3.4. 기존 대형 개체 열기

기존의 대형 개체를 열려면 다음을 호출하세요.

int lo_open(PGconn *conn, Oid lobjId, int mode);

lobjId인수는 대형 OID를 지정합니다. 열려는 개체입니다.모드비트 읽기 위해 객체를 열지 여부를 제어합니다(INV_READ), 쓰기(INV_WRITE) 또는 둘 다. 큰 물체는 있을 수 없다. 생성되기 전에 열립니다.lo_open에 대한 대형 개체 설명자를 반환합니다. 나중에 사용lo_read, lo_write, lo_lseek, lo_telllo_close. 설명자는 다음에만 유효합니다. 현재 거래 기간입니다.

28.3.5. 대형 객체에 데이터 쓰기

함수

int lo_write(PGconn *conn, int fd, const char *buf, size_t len);

쓴다len바이트buf대형 개체에fd.fd인수는 다음에 의해 반환되어야 합니다. 이전lo_open. 수 실제로 쓰여진 바이트가 반환됩니다. 오류가 발생한 경우, 반환 값은 음수입니다.

28.3.6. 대형 객체에서 데이터 읽기

함수

int lo_read(PGconn *conn, int fd, char *buf, size_t len);

읽기len대형 객체의 바이트fd속으로buf.fd인수가 반환되었음에 틀림없습니다 이전에 의해lo_open. 번호 실제로 읽은 바이트 수가 반환됩니다. 오류가 발생한 경우, 반환 값은 음수입니다.

28.3.7. 대형 객체 탐색

현재 읽기 또는 쓰기 위치를 대규모로 변경하려면 객체, 호출

int lo_lseek(PGconn *conn, int fd, int offset, int whence);

이 기능은 이동합니다 설명된 대형 객체의 현재 위치 포인터fd다음이 지정한 새 위치로오프셋. 유효한 값은어디에서아르SEEK_SET(개체 시작부터 탐색),SEEK_CUR(현재 위치에서 탐색) 및SEEK_END(객체 끝에서 탐색). 는 반환 값은 새 위치 포와이즈 토토입니다.

28.3.8. 대형 객체의 탐색 위치 획득

대규모 파일의 현재 읽기 또는 쓰기 위치를 얻으려면 객체, 호출

int lo_tell(PGconn *conn, int fd);

오류가 있는 경우, 반환 값은 음수입니다.

28.3.9. 대형 객체 설명자 닫기

큰 개체는 호출을 통해 닫힐 수 있습니다.

int lo_close(PGconn *conn, int fd);

어디에서fd는에 의해 반환된 대형 개체 설명자입니다.lo_open. 성공하면,lo_close0을 반환합니다. 오류시 반품 값이 음수입니다.

끝에 열려 있는 대형 개체 설명자 거래가 자동으로 종료됩니다.

28.3.10. 대형 개체 제거

데이터베이스에서 대형 개체를 제거하려면 다음을 호출하세요.

int lo_unlink(PGconn *conn, Oid lobjId);

lobjId인수는 대형 OID를 지정합니다. 제거할 개체입니다. 오류가 발생한 경우 반환 값은 다음과 같습니다. 부정.