2014년 9월 29일 월요일

Pro*C에서 DB에 Image 저장하는 방법[컴퓨터/IT/국비교육/무료교육/국비지원/국비지원학원/프로그램/서울자바/서울국비지원/IT국비/안드로이드/아이폰/자바국비]

-------------------------------------------------------------------------------- 
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%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272022
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111478
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-151233
52 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 오라클자바…01-311392
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-311254
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-311083
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191395
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111225
47 [평일야간,주말주간]JAVA,Network&JSP&Spring,MyBatis,Hibernate 오라클자바…01-031724
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272022
45 [기업100%환급,평일주간]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-191491
44 [평일야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,Jav… 오라클자바…12-141468
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111478
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-091182
41 [평일야간, 주말]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011396
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011544
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011050

댓글 없음:

댓글 쓰기