将数组存入数据库(100分)

  • 主题发起人 主题发起人 nethero
  • 开始时间 开始时间
N

nethero

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将一个数组(已知道该数组结构)存入数据库中,请问这个数据库该如何定义?
又怎样读出该数组内容?100分,还可以再加,只求能给个方法!
 
把数组的数据读写到一个文件里,然后把文件存入数据,试试看这样行不行??
 
数组元素和字段对应可以吗
 
把数据库中的表定义成和数组结构一样,然后
用for 循环应该可以。
 
具体要看你是什么样的数组了。
 
具体来说,是这样的:我有一个指纹仪,每次登录一个指纹以后, 指纹仪会自动生成一个特征值,
这个特征值是一个三百个字节的数组,现在我要把这个数组存到数据库中.要用到指纹比对的时候,
再取出来,我该怎样办?想把这个字段设为ole型,可不知道具体该怎样操作?我已经实现了把它存入ini文件,
可我觉得不是很好,所以阿,得拜托各位大侠帮帮我哦。万分感谢!!!最好有实例程序
 
你是说数组是动态数组吗?
 
根据数组的维数定义字段数,然后通过循环语句写到数据库中
for i := 0 to length(aaa) do
begin
adotable.append;
adotable.field.value := aaa;
adotable.post;
end;
 
var
datasetArray:TADODataSet;//定义一个记录集
begin
//定义结构
datasetArray:=TADODataSet.Create(nil);
for i:= 0 to FieldCount-1 do
begin
datasetArray.FieldDefs.Add(astrings,ftVariant);
end;
datasetArray.CreateDataSet;
datasetArray.Open;

//导入数据
for i:=0 to RecordCount do
begin
datasetArray.Append;
for j:=0 to FieldCount do
begin
datasetArray.FieldByName(astrings[j]).Value:=Value[i,j];
end;
end;
datasetArray.Post;
end;
//datasetArray.Sort:='ID';
end;
这样就可以用DatesetArray了,和普通的Dateset一样了

 
其實你的關鍵問題是如何ole字節數據寫入數據庫字段中吧,
沒問題,我寫了幾個函數,把ole字節數據轉換成str,及str-->ole,這樣你保存的就是string.
要用時就是ole array.
有用否?
 
wen,你能给个例子吗?yumq@163.com
 
不知道你说的特征值,是不是由字符组成的。
如果是,你可定义2--3个字段去存放。方法是按
某一比例拆开。
对比时就合并。
 
这个数组结构如下:
Tarray=array[0..255] of TZDP
TZDP=record
hres:integer;
zres:integer;
direct:integer;
flag:char;
end;
up_mb:Tarray;
现在我要把up_mb这个数组写入一个特定的数据库里,最好是存入一个字段里边
不过,这个数组的值可是变化的。不知我说的清不清楚?
 
直接寫入字段應沒法的,
做一下變通不就行了,复雜一點.
1 寫個函數,把up_mb:Tarray;存入一Clientdataset中,
2 取ClientDataset.data,調用我給你的oletostr-->得string;
3 存入數據表字段
4 取出數據表字段,調用strtoole,-->得oledata類型
5 寫一個函數,取出clientdata.data值到up_mb中.
當然你也可以直接寫一function,把up_mb的值存成一字符串,取出再反操作.




 
后退
顶部