K
kmgyl
Unregistered / Unconfirmed
GUEST, unregistred user!
我要把一个记录存储到数据库的blob字段中时出现错误.
定义记录
Tabc =record
bb: array[0..4]of char;
aa:double;
end;
pabc=^tabc;
存储记录
procedure TForm1.Button1Click(Sender: TObject);
var
ttt:Tstream;
cc:array[0..10]of Tabc;
pccabc;
begin
cc[0].bb:='1234';
cc[0].aa:=12.34;
cc[1].bb:='9876';
cc[1].aa:=98.76;
pcc:=@cc;
table1.active:=true;
table1.edit;
table1.Appendrecord(['3123',nil]);
table1.Edit;
ttt:=table1.CreateBlobStream(tblobfield(table1.fieldbyname('info')),bmwrite);
ttt.Write(pcc^,sizeof(tabc)*2);
table1.Post;
end;
检查数据库发现存储的记录内容只有
'1234', 后面的数据没有了.
当cc[0].bb='12345',cc[1].bb:='98765'时
数据库存储了所有的数据
我发现只要 bb中有0x00时忽略以后的其他数据.
大家帮我看看是不是这样,该如何解决..
谢谢了
定义记录
Tabc =record
bb: array[0..4]of char;
aa:double;
end;
pabc=^tabc;
存储记录
procedure TForm1.Button1Click(Sender: TObject);
var
ttt:Tstream;
cc:array[0..10]of Tabc;
pccabc;
begin
cc[0].bb:='1234';
cc[0].aa:=12.34;
cc[1].bb:='9876';
cc[1].aa:=98.76;
pcc:=@cc;
table1.active:=true;
table1.edit;
table1.Appendrecord(['3123',nil]);
table1.Edit;
ttt:=table1.CreateBlobStream(tblobfield(table1.fieldbyname('info')),bmwrite);
ttt.Write(pcc^,sizeof(tabc)*2);
table1.Post;
end;
检查数据库发现存储的记录内容只有
'1234', 后面的数据没有了.
当cc[0].bb='12345',cc[1].bb:='98765'时
数据库存储了所有的数据
我发现只要 bb中有0x00时忽略以后的其他数据.
大家帮我看看是不是这样,该如何解决..
谢谢了