存
var
i:integer;
MS:TMemoryStream;
SL:TStringList;
sql:string;
begin
try
MS:=TMemoryStream.Create;
sl:=TStringList.Create;
for i := 1 to 20 do
SL.Add(formatdatetime('yyyy-MM-dd hh:mm:ss',now));
SL.SaveToStream(MS);
sql:='INSERT INTO PRODUCTDATA(SSTIME,INTIME) '+
'VALUES(:SSTIME,:INTIME) ';
if IBQuery1.active then
IBquery1.Transaction.commit;
ibquery1.active:=false;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(sql);
IBQuery1.ParamByName('SSTIME').loadfromstream(ms,ftblob) ;
IBQuery1.ParamByName('INTIME').Value:=now;
IBQuery1.ExecSQL;
IBQuery1.Transaction.Commit;
Application.MessageBox('增加成功','提示', 0);
finally
MS.Free;
SL.Free;
end;
end;
取(需要先获取数据库表,这里没写)
var
j:integer;
MS:TMemoryStream;
SL:TStringList;
begin
try
MS:=TMemoryStream.Create;
sl:=TStringList.Create;
FillChar(ttv,SizeOf(ttv),0);
if (IBQuery1.FieldByName('sstime').Value<>null) then begin
TBlobField(IBQuery1.FieldByName('SSTIME')).SaveToStream(MS);
MS.Position:=0;
SL.LoadFromStream(MS);
Memo1.Text :='';
for J := 1 to SL.Count do
begin
Memo1.Text :=Memo1.Text+(SL[J-1])+' ';
Edit1.Text:=(SL[J-1]);
end;
end;
finally
MS.Free;
SL.Free;
end;
end;
这段代码展示了如何使用TMemoryStream和TStringList进行数据存储和检索。它首先创建一个包含当前日期时间的字符串列表,并将其保存到内存流中,然后将数据插入数据库PRODUCTDATA表。之后,代码从数据库中读取SSTIME字段,加载到内存流,再转换回字符串列表显示在Memo1中。

2083

被折叠的 条评论
为什么被折叠?



