사설 토토 사이트 9.2.24 문서화 | ||||
---|---|---|---|---|
토토 커뮤니티 : 문서 : 9.2 : 라이브러리 기능 | 토토 꽁 머니 : 문서 : 9.2 : ECPG- C에 포함 된 SQL | 제 33 장ECPG- 내장SQLin c | 다음 |
큰 물체는 ECPG에서 직접 지원되지 않지만 ECPG
응용 프로그램은 LIBPQ를 통해 큰 물체를 조작 할 수 있습니다
객체 기능, 필요한 획득pgconn객체를 호출하여ecpgget_pgconn ()
함수. (그러나 사용ecpgget_pgconn ()
함수 및
만지기pgconn객체는 직접적이어야합니다
매우 신중하고 이상적으로 다른 ECPG와 혼합되지 않았습니다.
데이터베이스 액세스 통화.)
에 대한 자세한 내용은ecpgget_pgconn ()
, 참조섹션 33.11. 에 대한 정보
큰 객체 함수 인터페이스, 참조32 장.
큰 객체 함수는 거래에서 호출되어야합니다. 블록, 그래서 자동 커밋이 꺼져있을 때시작명령을 명시 적으로 발행해야합니다.
예 33-2쇼 생성, 쓰기 및 ECPG 응용 프로그램에서 큰 객체를 읽으십시오.
예 33-2. ECPG 프로그램이 크게 액세스합니다 사물
#include <stdio.h #include <stdlib.h #include <libpq-fe.h #include <libpq/libpq-fs.h SQLERROR가 중지 될 때마다 SQL EXEC; int 메인 (void) pgconn *conn; oid loid; int fd; Char Buf [256]; int buflen = 256; Char Buf2 [256]; int rc; Memset (Buf, 1, Buflen); exec sql testdb에 con1로 연결; conn = ecpgget_pgconn ( "con1"); printf ( "conn = %p \ n", conn); /* 만들다 */ loid = lo_create (Conn, 0); if (loid & lt; 0) printf ( "lo_create () 실패 : %s", pqerrormessage (conn)); printf ( "loid = %d \ n", loid); / * 쓰기 테스트 */ fd = lo_open (conn, loid, inv_read | inv_write); if (fd & lt; 0) printf ( "lo_open () 실패 : %s", pqerrormessage (conn)); printf ( "fd = %d \ n", fd); RC = LO_WRITE (Conn, FD, Buf, Buflen); if (rc & lt; 0) printf ( "lo_write () 실패 \ n"); RC = LO_CLOSE (Conn, FD); if (rc & lt; 0) printf ( "lo_close () 실패 : %s", pqerrormessage (conn)); / * 테스트 읽기 */ fd = lo_open (conn, loid, inv_read); if (fd & lt; 0) printf ( "lo_open () 실패 : %s", pqerrormessage (conn)); printf ( "fd = %d \ n", fd); RC = LO_READ (Conn, FD, Buf2, Buflen); if (rc & lt; 0) printf ( "lo_read () 실패 \ n"); RC = LO_CLOSE (Conn, FD); if (rc & lt; 0) printf ( "lo_close () 실패 : %s", pqerrormessage (conn)); /* 확인하다 */ rc = memcmp (buf, buf2, buflen); printf ( "memcmp () = %d \ n", rc); / * 정리 */ rc = lo_unlink (Conn, loid); if (rc & lt; 0) printf ( "lo_unlink () 실패 : %s", pqerrormessage (conn)); Exec SQL 커밋; Exec SQL 모든 분리; 반환 0;