Q&A

  • DB에서 이미지를 넣고 불러서 쓰기?
안녕들 하세요...
저는 델파이에 관심을 가지고 있는 학생입니다..
다름이 아니고...제가 db에 이미지를 넣고 불러서쓸려고 하는데 어떻게 코딩을 해야할지 모르겠어요...
검색을 해보아도 안나오고..(못찾고잇어여..--;) 현재 보고있는 책에도 그런 부분에 없어서 이렇게 글을 남겨 봅니다...

구체적으로 제가 물어 볼것은

1.테이블을 설정할때 이미지의 타입을 G(그래픽)으로 하는것이 맞는지를 알고 싶습니다..

2.쿼리를 만들어서 사용할때
  일반 문자형(db타입이 A)은
   name.text:=form1.query1.fieldbyname('name').asstring;
  로 쓰자나요..그럼 이미지타입은 마지막부분 즉 asstring 대신에 어떤걸 쓰야하는지를 모르겠어요..

3.db에 이미지를 올릴때 일반 문자형을 올리는 것처럼 사용해도 되는지 궁금합니다..
  form1.table1.fieldbyname('name').asstring:=name.text;
  이런 씩으로 할수있는지 아니면 다른 함수가 들어가야 하는지 꼭 알고 싶어요..
고수님들의 답변을 부탁드립니다..

p.s 기분 좋은 하루 보내시고요..행복하세요^^
3  COMMENTS
  • Profile
    ^ㅡ^ 2002.08.03 03:18



    안녕하세요
    저도 델파이초보입니다
    근데 제가 알기론
    이미지를 디비에 저장 하는방법은 좋지 않다고 들었습니다.
    용량이 장난 아니게 늘어나니까요
    특히 bmp경우는 더 하지요

    차라리 경로로 저장 하시는게 좋을꺼 같습니다.
    var  bmp : String;
    begin

    if OpenPictureDialog1.Execute then  //오픈픽쳐다이얼러그가 실행되면...
    begin
        Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename); //이미지에 해당 파일을 붙인다
      
      //Query1Sajin.LoadFromFile(OpenPictureDialog1.Filename); db이미지를 할 경우   사진필드에 바로 이미지를 저장 한다.
      
        일반 이미지일경우 임시변수에 경로저장
        bmp := OpenPictureDialog1.Filename;

        저장할때 저장한다.
        Query1.FieldByName('S_SaJin').AsString := Bmp;
    end;

       //불러올떄........

        Bmp := Qry_GridS_SaJin.AsString;
        if  Trim(Bmp) = '' then
          Image1.Picture := nil
        else
        begin
         try
           Image1.Picture.LoadFromFile(Bmp);
         except
           showMessage('경로에 사진이없습니다.');
           Image1.Picture := nil;
         end;

        end;

       db이미지를 사용할경우에는 불러오는 작업은 안 하셔도 db에서 지원함
    end;

    //경로일 경우 ↑



    이미지전체를 잡을때는 이미지필드를 만들어야 하겠지만
    그냥 경로로 사용 하신다면 그냥 char(200) 일케 해도 될꺼 같은데요


    허접한 답변입니다
    도움이 되시징...
    즐코 하세요
  • Profile
    정광채 2002.08.03 09:54
    var  bmp : String;
    begin

    if OpenPictureDialog1.Execute then  //오픈픽쳐다이얼러그가 실행되면...
    begin
        Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename); //이미지에 해당 파일을 붙인다
      
      //Query1Sajin.LoadFromFile(OpenPictureDialog1.Filename); db이미지를 할 경우   사진필드에 바로 이미지를 저장 한다.
      
        일반 이미지일경우 임시변수에 경로저장
        bmp := OpenPictureDialog1.Filename;

        저장할때 저장한다.
        Query1.FieldByName('S_SaJin').AsString := Bmp;
    end;

       //불러올떄........

        Bmp := Qry_GridS_SaJin.AsString;
        if  Trim(Bmp) = '' then
          Image1.Picture := nil
        else
        begin
         try
           Image1.Picture.LoadFromFile(Bmp);
         except
           showMessage('경로에 사진이없습니다.');
           Image1.Picture := nil;
         end;

        end;

       db이미지를 사용할경우에는 불러오는 작업은 안 하셔도 db에서 지원함
    end;

    //경로일 경우 ↑



    이미지전체를 잡을때는 이미지필드를 만들어야 하겠지만
    그냥 경로로 사용 하신다면 그냥 char(200) 일케 해도 될꺼 같은데요


    허접한 답변입니다
    도움이 되시징...
    즐코 하세요


    님의 답변 정말 고마워요..
    님의 소스를 조금 더 보충한거에요 다른사람에게 혹시 도움이 될까봐..^^;

    procedure TForm1.Button1Click(Sender: TObject);
    var  bmp : String;
    begin
        table1.open; //테이블오픈이 빠져있더라고요..^^;
        table1.insert; //테이블에 삽입할수잇도록
        if OpenPictureDialog1.Execute then  //오픈픽쳐다이얼러그가 실행되면...
        begin
        Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename); //이미지에 해당 파일을 붙인다

      //Query1.FieldByName.LoadFromFile(OpenPictureDialog1.Filename); db이미지를 할 경우   사진필드에 바로 이미지를 저장 한다.

      //  일반 이미지일경우 임시변수에 경로저장
        bmp := OpenPictureDialog1.Filename;

       // 저장할때 저장한다.
        table1.FieldByName('sajin').AsString := Bmp;
        table1.post;  //테이블 저장
        table1.close; //닫기
        end;

    // db이미지를 사용할경우에는 불러오는 작업은 안 하셔도 db에서 지원함
    end;



    procedure TForm1.Button2Click(Sender: TObject);
    var
    bmp:string;
    begin
       //불러올떄........
        table1.open; //테이블 오픈
        Bmp := table1.fieldbyname('sajin').AsString;
        if  Trim(Bmp) = '' then
        begin
          Image1.Picture := nil
        end
        else
        begin
         try
           Image1.Picture.LoadFromFile(Bmp);
         except
           showMessage('경로에 사진이없습니다.');
           Image1.Picture := nil;
        end;
       end;
       table1.close;  //테이블닫기
    end;

    똑같은 거지만 테이블이나 쿼리 오픈이 없어서 첨에 당황했거든요..^^;;
    그냥 다들 아시겠지만 저처럼 초보에게 도움이 되었으면 해서 주재넘께 써보았어요^^;;
    다들 즐델하세요^^;
  • Profile
    ^ㅡ^ 2002.08.03 22:47
    저두 여기서 도움을 많이 받았거든요
    아까 그 내용들도 여기 저기서 찾은거에요

    그래도 도움이 되셨다니 다행입니다
    항상 즐건운 하루 되시고
    좋은 주말 보내세요 ^ㅡ^
    • 박성훈
      2002.08.04 20:13
      안녕하세요? Undeclared identifier : 'FindNearest'  메세지는 이 메소드를 쓸 수 없다는 ...
    • 정광채
    • 2002.08.02 20:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • ^ㅡ^
      2002.08.03 03:18
      안녕하세요 저도 델파이초보입니다 근데 제가 알기론 이미지를 디비에 저장 하는방법은 좋지 않...
    • 정광채
      2002.08.03 09:54
      var  bmp : String; begin if OpenPictureDialog1.Execute then  //오픈픽쳐다이...
    • ^ㅡ^
      2002.08.03 22:47
      저두 여기서 도움을 많이 받았거든요 아까 그 내용들도 여기 저기서 찾은거에요 그래도 도움이 되셨다...
    • 한승희
    • 2002.08.02 19:39
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이준해
      2002.08.03 01:55
      CBuilder 6.0 을 같이 설치하셨나요 ?
    • 솔잎혹파리
      2002.08.03 01:37
      이렇게 함 해보세요 Bin폴더에 Delphi32.dsk가 있습니다 이놈을 지우고 해보셔요
    • 미러
    • 2002.08.02 18:38
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이준해
      2002.08.03 01:56
      pagefooter 와 묶이는 GroupBand 를 사용하셨나요 ? 사용하셨으면. 그 GroupBand 의 ForceNewPage 를 True...
    • 오병주
      2002.08.02 18:55
      지송합니다...^^:; 소스를 한번 올려보세요..^^;;
    • 미러
      2002.08.02 18:58
      summary는 인쇄물 제일 마지막에  나오는거 아닌가요? 전 그렇게 알고 있는데.. 제가 하고 싶...
    • 오병주
      2002.08.02 19:38
    • 미소나눔
      2002.08.02 11:21
      var   Ary : array[1..5, 1..5] of integer;     즐푸..~
    • cell
      2002.08.03 01:52
      많은 분들이 도와주셨네요... 감사합니다. 다음주부터 코딩이라 그때 해봐야 되겠네요...
    • 김경록
      2002.08.02 19:12
      이건 별로 어려운건 아닙니다. 일단, 컴포넌트 Database1, Database2를 폼에 두고, 해당 컴포넌트에 님...
    • 머슴
      2002.08.02 18:26
        서버가 다른경우에..DATABASE LINK 라는것으로 해결을 보셔야 합니다.   네트워...
    • 이추형
      2002.08.02 18:44
      오라클 클라이언트 설치된 디렉토리에서 TNSNAMES.ORA라는 파일을 수정해 주셔야합니다. sample.WORLD ...
    • 머슴
      2002.08.02 19:26
      오라클 클라이언트 설치된 디렉토리에서 TNSNAMES.ORA라는 파일을 수정안해줘도 될것 같은데요.. 왜냐하...
    • 미소나눔
      2002.08.02 11:26
      저도 몰라서 물어봤는데 SQL Server 는 OPENROWSET 를 사용해봐라 하는데용.. 오라클도 있을듯..
    • 델초보
    • 2002.08.02 08:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2002.08.02 09:20
      procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin     if Column.Field...
    • 문미령
    • 2002.08.02 08:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2002.08.02 18:56
      이렇게 봐서는 어디가 문제인지 잘모르겠군요... ^^; 코딩내용을 올려보세요..^^;
    • 김형수
    • 2002.08.02 05:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최여옥
      2002.08.02 22:16
      우선은 component 추가방법입니다. 1. component 메뉴을 누르고 install Component... 를 실행한다. 2. B...
    • 김경록
      2002.08.02 19:33
      QUERY에 대한 Tunning이 가능한지 여부를 먼저 묻고 싶습니다. 또한, Rollback Segment에서 자동을 Shrink...
    • KDDG_ZZOM
      2002.08.02 03:36
      맞는지는 모르지만... 템프러리 테이블스페이스가 오버 된것같네요... 쿼리할때 그룹함수나 오더바이하면 ...
    • 서계원
    • 2002.08.02 02:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김희경
    • 2002.08.02 02:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 신익철
    • 2002.08.02 02:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.08.02 12:04
      안녕하세요. 최용일입니다. 왜 좌측에 하실려구 하나요? 이러한 비표준 UI는 사용자들에게 별로 환영받...
    • 최용일
      2002.08.02 12:10
      안녕하세요. 최용일입니다. 델파이 버전에 따라서 있는거 있구 없는거 있을겁니다... 델파이 버전 확...
    • 델파이사랑
      2002.08.02 19:03
      델파이 버전 6 엔터프라이즈 입니다........쩝...... 원래 여기에 없는 건가여......update 팩 1, 2를 ...
    • 백재현
    • 2002.08.02 01:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 2002.08.02 01:49
      예전에 최용일님이 올리신 글입니다. 안녕하세요. 최용일입니다. 검색해보시면 많이 나와 있는데....
    • 권영진
    • 2002.08.02 00:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오병주
      2002.08.02 19:01
      글쎄여 ~ 스트링 그리드는 너무 다른 여러가지 표시를 하기에는 제약이 많구여... Advgrid6을 한번 ...
    • 수서니
    • 2002.08.02 00:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.08.02 00:36
        frmSelect.ZMqryClist.sql.Add(' CNAME LIKE :name ');   frmSelect.ZMqryClist.pa...
    • 박규형
      2002.08.03 04:55
      약간 틀린부분이 있어서 사족을 답니다... 'select * from customer where cname like ' + '%' + &...
    • 수서니
      2002.08.02 02:32
      디비 세팅중이라 아직 테스트는 못해봤지만 감사합니다요~
    • 미소나눔
      2002.08.02 09:26
      TDataSet 객체들은 DataSet.Open 했을 때 데이타베이스에 쿼리한 결과를 데이타버퍼에 저장합니다. 데이타...
    • 이인수
      2002.08.02 20:08
      안녕하세요 이인수입니다. 우선 답변해주신거 감사드립니다.. ^^: 그런데요... TDataSet이라구...