数组在数据库中的存取(200)

  • 主题发起人 主题发起人 bx59830
  • 开始时间 开始时间
B

bx59830

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将以下abc的值存入SQL数据库,然后再取出。数据库的字段类型用什么。abc:Array[0..511] of Char;
 
例如你可以做成逗号分隔符的,存入数据库中,读出时再还原。
 
数据库字段不支持数组,你只能自己对它进行处理转化为一个字符串(或者数据流)保存在数据库中,数据取出后再自己解析。
 
任何分隔符都有可能与你数组中的字符相同,而且还要解析,麻烦,所以不可采用分隔符的形式,用流的方式就很好实现//读取procedure TForm1.Button1Click(Sender: TObject);var abc: array[0..511] of Char; MS: TMemoryStream;begin FillChar(abc,512,#0); //初始化内存 MS:= TMemoryStream.Create; try MS.Clear; TBlobField(ADOTable1.FieldByName('字段名')).SaveToStream(MS); MS.Position:= 0; Move(pchar(MS.Memory^), abc, MS.Size); finally MS.Free; end;end;//保存procedure TForm1.Button2Click(Sender: TObject);var abc: array[0..511] of Char; MS: TMemoryStream;begin MS:= TMemoryStream.Create; try MS.Clear; MS.Write(abc, 512); MS.Position:= 0; TBlobField(ADOTable1.FieldByName('字段名')).Clear; TBlobField(ADOTable1.FieldByName('字段名')).LoadFromStream(MS); finally MS.Free; end;end;
 
数据库的字段类型就用支持流的字段类型,比如MS SQLServer 2000的用image图片类型
 
问题解决了,谢谢楼上的各位,结贴了。
 
后退
顶部