怎么样将一些配置参数(10多项)保存到一个Blob字段中,存取要比较快?(100分)

  • 主题发起人 主题发起人 guqiu
  • 开始时间 开始时间
G

guqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
虽然可以将参数逐个用普通字段存取,但是如果参数项改变的话,需要添加字段。
我想能不能通过一个Blob字段将设置的参数保存起来。该怎么定义Blob里的数据结构呢?
如何存取?
 
帮自己顶一下,着急解决啊,各位帮帮忙
 
使用TMemoryStream读写(read,write方法)有固定长度的record(比如record里有string类型的话,必须指定长度),既然把这record读写到TMemoryStream对象里了,再保存到数据库中一个blob字段不成问题了吧
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TRecordStr = record
Name: string[20];
Age: Integer;
//以后扩充的字段只能加在这后面,为了保持跟之前的兼容
end;

TForm1 = class(TForm)
btn1: TButton;
edt1: TEdit;
edt2: TEdit;
btn2: TButton;
edt3: TEdit;
edt4: TEdit;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
r: TRecordStr;
ms: TMemoryStream;
begin
r.Name := edt1.Text;
r.Age := StrToIntDef(edt2.Text,1);
ms := TMemoryStream.Create;
try
ms.write(r,SizeOf(r));
ms.Seek(0,soFromBeginning);
// ms.SaveToFile('c:/1.dat');-->改成保存到数据库
finally
ms.Free;
end;
end;

procedure TForm1.btn2Click(Sender: TObject);
var
r: TRecordStr;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
try
//ms.LoadFromFile('c:/1.dat'); 改成从数据库中取
ms.Seek(0,soFromBeginning);
ms.read(r,SizeOf(r));
edt3.Text := r.Name;
edt4.Text := IntToStr(r.Age);
finally
ms.Free;
end;
end;

end.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部