안녕하세요?
우여곡절끝에 이미지와 글자를 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;
|