怎么查询blod字段(access),十万火急啊!!! ( 积分: 200 )

  • 主题发起人 主题发起人 绿人
  • 开始时间 开始时间
绿

绿人

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经把文本和图片存入数据库(access),blod字段,但是怎么可以查询这个字段,我用的控件是richview
 
存入后是二进制啦
能直接查询吗?
 
查询?怎么查?
 
文字太多,且有图片之类的,用Blob字段,存取用ADO的TADOStream就可以了。
QryEdtGist.Append;
QryEdtGist.FieldByName('GistId').Value := TempId;
QryEdtGist.FieldByName('Gist').Value := Trim(edtGistTitle.Text);
QryEdtGist.FieldByName('GistDate').AsDateTime := DtGist.Date;
QryEdtGist.FieldByName('GistText').Value := Trim(MemGistText.Text);
TBlobField(QryEdtGist.FieldByName('GistGraph')).LoadFromFile('C:/1.htm');

{try
TempStream := TMemoryStream.Create;
imgGist.Picture.Bitmap.SaveToStream(TempStream);
TempStream.Position := 0;
TBlobField(QryEdtGist.FieldByName('GistGraph')).LoadFromStream(TempStream);
finally
TempStream.Free;
end;}
QryEdtGist.post;
 
delphi 有一个TADOBlobStream类,专门做这个事情的。 查查资料,怎么写我都忘了
 
谢谢回答,但是你这个是用来保存的,我希望能保存在blod里面的关于文字的内容查询出来
 
TADOBlobStream 这个东西就是用来查询的。
 
dangde 这个TADOBlobStream能够查询出文字吗,可以给个实例吗?谢谢
 
有人回答吗?这个问题难倒了吗?
 
笨办法 读出文字到Strings中 再查询
 
用流来读,分析其头部信息来判断:
//显示
procedure TForm1.Button1Click(Sender: TObject);
var
aBitmap: TBitmap;
aJPEGImage: TJPEGImage;
aStream: TStream;
head: word;
const
bmp = $4D42;
jpeg = $D8FF;
begin
aBitmap:= TBitmap.Create;
aJPEGImage:= TJPEGImage.Create;
aStream:= TMemoryStream.Create;
try
TBlobField(ADOQuery1.FieldByName('pic')).SaveToStream(aStream);

aStream.Position := 0; //一定要有这句
aStream.Read(head,2);
aStream.Position:= 0;
if head = bmp then
begin
aBitmap.LoadFromStream(aStream);
Image1.Picture.Assign(aBitmap);
end
else if head = jpeg then
begin
aJPEGImage.LoadFromStream(aStream);
Image1.Picture.Assign(aJPEGImage);
end;

finally
aBitmap.Free;
aJPEGImage.Free;
aStream.Free;
end;
end;
 
用clob字段,可以当字符串string来读吧
 
建议使用RichviewEdit控件,该控件可以实现你所有的要求,功能比Richview强大多了,可以保存成Rtf流,我前些天做过一个程序,就是使用它,很好用的。

如果你坚持用Richview的话,想查看Blob字段的内容,建议在表中,加个字段,专门保存文字内容,不是很方便么;实在不想保存,你可以尝试使用SQL语句(如convert函数,俺没有试过,你试试看吧),进行强制类型转换啊。
 
请问Baiqi2000 ,RichviewEdit保存成Rtf流,能辨识出需要找的文字吗?
 
将文本和图片存放在不同的blob字段,在查询时,用vba的字符串转换函数转换blob就可以了。
 
Re:RichviewEdit保存成Rtf流,能辨识出需要找的文字吗?
你要进行检索麽?
Rtf 流包含文字和图片的流信息,直接进行查询文字是不可以的啊,你可以另外加个字段,专门保存文本信息,以便查询。
我最新做的一个模块就是这么干的啊。
 
Baiqi2000,你的意思是再加个字段来保存RichviewEdit里面的文本信息,这样数据库的容量不是会浪费吗?不过没有其他的办法,也只能这样做了
 
想问问有没有其他好的办法
 
请高手回答一下
 
只能自己顶一下了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部