Q&A

  • 이미지 field에 파일 입력하는 방법[긴급]
현재 sysbase를 사용하고 있습니다.

이미지 field에 파일을 등록하고 싶은데 어떻게 해야할지를 몰라서

글을 올립니다.

object를 사용하지 않고 명령문을 사용해서 처리하는 방법을 가르쳐주세요



txt파일이나 excel파일을 db에 저장하고 읽고 하는 것입니다.



그리고 등록한 데이타를 읽어서 처리하는 방법도 알려주십시요



매우 긴급한 일이라 빠른 답변을 부탁합니다.



부탁드립니다.

1  COMMENTS
  • Profile
    김영대 1999.07.14 04:41
    안류진 께서 말씀하시기를...

    > 현재 sysbase를 사용하고 있습니다.

    > 이미지 field에 파일을 등록하고 싶은데 어떻게 해야할지를 몰라서

    > 글을 올립니다.

    > object를 사용하지 않고 명령문을 사용해서 처리하는 방법을 가르쳐주세요

    > txt파일이나 excel파일을 db에 저장하고 읽고 하는 것입니다.

    > 그리고 등록한 데이타를 읽어서 처리하는 방법도 알려주십시요

    > 매우 긴급한 일이라 빠른 답변을 부탁합니다.

    > 부탁드립니다.



    SYSBASE는 BLOB 형 필드를 어떻게 정의하는지 모르겠지만

    Table에 BLOB형 필드를 만들고 이곳에 TTable로 저장하고

    TQuery 로 조건을 주어서 읽어오는 예제입니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    DBTables, Db, StdCtrls;



    type

    TForm1 = class(TForm)

    B_BlobToFile: TButton;

    B_FileToBlob: TButton;

    B_DeleteBlob: TButton;

    Database1: TDatabase;

    Query1: TQuery;

    Table1: TTable;

    E_FileName: TEdit;

    procedure B_BlobToFileClick(Sender: TObject);

    procedure B_FileToBlobClick(Sender: TObject);

    procedure B_DeleteBlobClick(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}





    procedure TForm1.B_BlobToFileClick(Sender: TObject);

    var

    FS_Write: TFileStream;

    begin

    try

    FS_Write := TFileStream.Create(E_FileName.Text, fmCreate);

    Query1.Close;

    Query1.SQL.Clear;

    Query1.SQL.Add(' SELECT BLOBFIELD ');

    Query1.SQL.Add(' FROM BLOBTABLE ');

    Query1.SQL.Add(' WHERE FILENAME = '''+E_FileName.Text+''' ');

    Query1.Open;

    TBlobField(Query1.FieldByName('BLOBFIELD')).SaveToStream(FS_Write);

    // 위의 TFileStream을 쓰지않고 직접 저장하려면 아래의 SaveToFile을 쓰십시요

    // TBlobField(Query1.FieldByName('BLOBFIELD')).SaveToFile(E_FileName.Text);

    Query1.Close;

    finally

    FS_Write.Free;

    end;

    end;



    procedure TForm1.B_FileToBlobClick(Sender: TObject);

    begin

    // Table1.TableName 프로퍼티는 'BLOBTABLE'이 되겠죠

    Table1.Open;

    Table1.Insert;

    Table1.FieldByName('FILENAME').AsString := E_FileName.Text;

    TBlobField(Table1.FieldByName('BLOBFIELD')).LoadFromFile(E_FileName.Text);

    Table1.Post;

    Table1.Close;

    end;



    procedure TForm1.B_DeleteBlobClick(Sender: TObject);

    begin

    Query1.Close;

    Query1.SQL.Clear;

    Query1.SQL.Add(' DELETE FROM BLOBTABLE ');

    Query1.SQL.Add(' WHERE FILENAME = '''+E_FileName.Text+''' ');

    Query1.ExecSQL;

    end;



    end.