Delphi에 BLOB Field에 레코드 데이터 저장

1819 단어 Delphi
정의:
TUser = packed record

   Name : string[50];

   CanAsk : boolean;

   NumberOfQuestions : integer;

end; 

스토리지:
var

   User : TUser;

   blobF : TBlobField;

   bs : TStream;

begin

   User.Name := edName.Text;

   User.NumberOfQuestions := StrToInt(edNOQ.Text) ;

   User.CanAsk := chkCanAsk.Checked;



   myTable.Insert;



   blobF := myTable.FieldByName('data') as TBlobField;

   bs := myTable.CreateBlobStream(blobF, bmWrite) ;

   try

     bs.Write(User,SizeOf(User)) ;

   finally

     bs.Free;

   end;

end; 
  :
var

   User : TUser;

   blobF : TBlobField;

   bs : TStream;

begin

   if myTable.FieldByName('data').IsBlob then

   begin

     blobF := DataSet.FieldByName('data') as TBlobField;

     bs := myTable.CreateBlobStream(blobF, bmRead) ;

     try

       bs.Read(user,sizeof(TUser)) ;

     finally

       bs.Free;

     end;

   end;



   edName.Text := User.Name;

   edNOQ.Text := IntToStr(User.NumberOfQuestions) ;

   chkCanAsk.Checked := User.CanAsk;

end; 

좋은 웹페이지 즐겨찾기