Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15919] 스트림으로 저장된 문서 불러오기 좀 봐주세요.
전봉수 [jeunbs] 94 읽음    2017-08-05 22:22
안녕하세요?
우여곡절끝에 이미지와 글자를 RTF파일로 작성하여 리치에디터에 불러와서 스트림으로 저장 루턴을 만들어서
바이너리로 DB에 저장하는데 까지는 성공 하였습니다.
문제는 DB에 저장된 내용을 리치에디터에 불러오질 못합니다.

운영체제 : Win7  프로그램 툴 : 델파이7 DB : Firebird2.1

// 리치에디터 내용 스트림으로 저장
procedure TMotice_F.Btn_SaveClick(Sender: TObject);
var
  sSQL : String;
  MS : TStringStream;
begin
  //쿼리로 저장하는 소스
  MS := TStringStream.Create(RI_MOTICE_NM.Text);                
  Try
    MS.Position := 0;
    RI_MOTICE_NM.Lines.SaveToStream(MS);                     
 
    DM.SQL_OPEN(QR_Motice, sSQL);                                
    With QR_Motice do
      begin
        Close;
        Sql.Clear;
        Sql.Add(' UPDATE TF_MOTICE SET');                        
        Sql.Add(' MOTICE_CD = :P_MOTICE_CD ');                  
        Sql.Add(',MOTICE_NM = :P_MOTICE_NM ');                   

        Parambyname('P_MOTICE_CD').Asstring := ED_MOTICE_CD.text;
        Parambyname('P_MOTICE_NM').LoadFromStream(MS,ftBlob);   
        Try
          ExecSQL;
        Except
          APPLICATION.MessageBox('DB 테이터 저장도중 오류발생...!!!',
                                 '오류확인',MB_OK+MB_ICONINFORMATION);
          EXIT;
        End;
      End;

  Finally
    MS.Free;                                                   
  End;
End;

아무것도 불러오질 못하는 소스
// 스트림으로 저장된 데이터를 리치에디터로 불러오기
procedure TMotice_F.Strem_LoadClick(Sender: TObject);
var
  sSQL : String;
  MS : TStringStream;
begin
  // 스트림의로 불러오는 함수
  MS := TStringStream.Create(RI_MOTICE_NM.Text);
  Try
    MS.Position := 0;
    RI_MOTICE_NM.Lines.LoadFromStream(ms);

    sSQL := 'Select * From TF_MOTICE WHERE MOTICE_CD = '''+ED_MOTICE_CD.TEXT+''' ';

    DM.SQL_OPEN(QR_Motice, sSQL);
    With QR_Motice do
      begin
        Close;
        Sql.Clear;
        ED_MOTICE_CD.text := FieldByName('MOTICE_CD').Asstring        
        //TBlobField(QR_MOTICE.FieldByName('MOTICE_NM')).LoadFromStream(ms);
        //FieldByName('MOTICE_NM').LoadFromStream(MS,ftBlob);
      end;
   Finally
    MS.Free;
  End;

  {또는
  IF SENDER = ED_MOTICE_CD THEN
    BEGIN
      MS := TStringStream.Create(RI_MOTICE_NM.Lines.Text);

      ED_MOTICE_CD.Text :=QR_MOTICE.FieldByName('MOTICE_CD').Asstring;
      TBlobField(QR_MOTICE.FieldByName('MOTICE_NM')).SaveToStream(ms);
      MS.Seek(0, soFromBeginning) ;
      RI_MOTICE_NM.Lines.LoadFromStream(ms);
      MS.Free;
    end;}

문자만 불러오고 이미지는 불러오질 못하는 소스
// 내용을 화면에 로드한다.
if SENDER = ED_MOTICE_CD then
  BEGIN
    RI_MOTICE_NM .TEXT:=
    GET_CODE_DESC('TF_MOTICE',1,[1],['MOTICE_CD'],[TRIM(ED_MOTICE_CD.TEXT)],'MOTICE_NM');
  End;

+ -

관련 글 리스트
15919 스트림으로 저장된 문서 불러오기 좀 봐주세요. 전봉수 94 2017-08-05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.