Pro*C에서 DB에 Image 저장하는 방법
--------------------------------------------------------------------------------
SAMPLE : DB에 IMAGE FILE을 저장
Bulletin no : 10111
--------------------------------------------------------------------------------
다음은 image file 을 insert 하는 예제입니다.
참고 하십시오.
* 이미지 화일의 Type에는 여러가지 형태가 있다.
예를 들면 BMP, PCX, TIF, ...
이 중에서도 압축 효율이 높은 File의 형태를 선택하는 것이 좋다.
가령 BMP Type보다는 PCX Format이 거의 1/4 정도로 압축을 해주므로 보다 효율
적이다.
* 일단 PC의 Windows의 PaintBrush 또는 Image 처리하는 Tool로써
이미지 화일을 적절한 형태로 처리하여 File로 만들어서 Unix Server로 올린다.
*image file을 저장하기 위해서는 image file이 저장될 column의 data type이
long raw이어야 한다.
* Long Data를 처리하기 위해서는 file size를 알아야하며,
추후 File의 Size로써 처리해야 하는 일이 있다면, Table에 File의 Size도
저장하는 것이 효율적이다.
* 아래의 프로그램은 Image File을 읽어서 Table에 저장하는 내용이다.
#include
typedef char bitmap[56262]; /* file size */
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
EXEC SQL TYPE bitmap IS LONG RAW(56262) REFERENCE;
bitmap buffer;
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE sqlca;
void sqlerror(); /* handles unrecoverable errors */
FILE *fp;
main()
{
strcpy(username.arr, "SCOTT");
username.len = strlen(username.arr);
strcpy(password.arr, "TIGER");
password.len = strlen(password.arr);
EXEC SQL WHENEVER SQLERROR DO sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password;
EXEC SQL WHENEVER SQLERROR DO sqlerror();
fp=fopen("xxx.bmp","r");
fread(&buffer, 1, 56262, fp);
EXEC SQL INSERT INTO IMAGE VALUES (20, :buffer);
EXEC SQL COMMIT WORK RELEASE;
}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n% .70s \n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
}
--------------------------------------------------------------------------------
SAMPLE : DB에 IMAGE FILE을 저장
Bulletin no : 10111
--------------------------------------------------------------------------------
다음은 image file 을 insert 하는 예제입니다.
참고 하십시오.
* 이미지 화일의 Type에는 여러가지 형태가 있다.
예를 들면 BMP, PCX, TIF, ...
이 중에서도 압축 효율이 높은 File의 형태를 선택하는 것이 좋다.
가령 BMP Type보다는 PCX Format이 거의 1/4 정도로 압축을 해주므로 보다 효율
적이다.
* 일단 PC의 Windows의 PaintBrush 또는 Image 처리하는 Tool로써
이미지 화일을 적절한 형태로 처리하여 File로 만들어서 Unix Server로 올린다.
*image file을 저장하기 위해서는 image file이 저장될 column의 data type이
long raw이어야 한다.
* Long Data를 처리하기 위해서는 file size를 알아야하며,
추후 File의 Size로써 처리해야 하는 일이 있다면, Table에 File의 Size도
저장하는 것이 효율적이다.
* 아래의 프로그램은 Image File을 읽어서 Table에 저장하는 내용이다.
#include
typedef char bitmap[56262]; /* file size */
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
EXEC SQL TYPE bitmap IS LONG RAW(56262) REFERENCE;
bitmap buffer;
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE sqlca;
void sqlerror(); /* handles unrecoverable errors */
FILE *fp;
main()
{
strcpy(username.arr, "SCOTT");
username.len = strlen(username.arr);
strcpy(password.arr, "TIGER");
password.len = strlen(password.arr);
EXEC SQL WHENEVER SQLERROR DO sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password;
EXEC SQL WHENEVER SQLERROR DO sqlerror();
fp=fopen("xxx.bmp","r");
fread(&buffer, 1, 56262, fp);
EXEC SQL INSERT INTO IMAGE VALUES (20, :buffer);
EXEC SQL COMMIT WORK RELEASE;
}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n% .70s \n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
}
[100%환급외,실무전문]빅데이터/SQL/자바/스프링/안드로이드/닷… | 12-27 | 2721 | ||
[채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… | 12-11 | 1963 | ||
53 | [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… | 03-15 | 1784 | |
52 | [주말]C#,ASP.NET마스터 | 01-31 | 1944 | |
51 | [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… | 01-31 | 2851 | |
50 | [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 | 01-31 | 1495 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… | 01-19 | 1823 | |
48 | [평일야간,주말]안드로이드개발자과정(Android기초실무) | 01-11 | 1698 | |
47 | [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… | 01-03 | 2243 | |
46 | [100%환급외,실무전문]빅데이터/SQL/자바/스프링/안드로이드/닷… | 12-27 | 2721 | |
45 | [평일주간]NoSQL,MongoDB,빅데이터기초과정 | 12-19 | 1920 | |
44 | [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… | 12-14 | 1900 | |
43 | [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… | 12-11 | 1963 | |
42 | [평일주간]빅데이터하둡기초과정(BigData Hadoop) | 12-09 | 1544 | |
41 | [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1773 | |
40 | [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… | 12-01 | 1978 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1417 |
댓글 없음:
댓글 쓰기