定义:
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;