이 문서는 지원되지 않는 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입니다. 새로운 대형 객체에 할당된 것 또는 InvalidOid(영) 실패 시.

예:

inv_oid = lo_creat(conn, INV_READ|INV_WRITE);

28.3.2. 대형 개체 가져오기

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

Oid lo_import(PGconn *conn, const 토토 꽁 머니ar *filename);

파일 이름운영 체제를 지정합니다. 대형 개체로 가져올 파일의 이름입니다. 반환 값은 새 대형 개체에 할당된 OID입니다. 실패 시 InvalidOid(0)입니다. 파일은 다음에서 읽혀집니다. 서버가 아닌 클라이언트 인터페이스 라이브러리; 그러니 반드시 존재해야 해 클라이언트 파일 시스템에 있고 클라이언트가 읽을 수 있음 신청합니다.

28.3.3. 대형 개체 내보내기

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

int lo_export(PGconn *conn, Oid lobjId, const 토토 꽁 머니ar *filename);

lobjId인수는 대형 OID를 지정합니다. 내보낼 객체 및파일 이름인수는 파일의 운영 체제 이름을 지정합니다. 참고 파일이 클라이언트 토토 꽁 머니 라이브러리에 의해 작성되는 것이 아니라 서버에 의해. 성공하면 1을, 실패하면 -1을 반환합니다.

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. 설명자는 다음에만 유효합니다. 현재 거래 기간. 실패 시 -1은 돌아왔습니다.

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(개체 끝에서 탐색). 는 반환 값은 새 위치 포인터이거나 오류 시 -1입니다.

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를 지정합니다. 제거할 개체입니다. 성공하면 1을, 실패하면 -1을 반환합니다.