olevariant和数据库中的Blob字段都为指针数据类型,不能直接存取,利用内存流或者文件流的形式,先把数据保存在流变量(比如MM)中,然后赋值,保存。
query1.Edit;
MM:=TMemoryStream.Create;
OleVariant.SaveToStream(MM);//此处为你的ole变量名。
MM.seek(0,0);
TBlobField(query1.fieldByName('olevar')).LoadFromStream(MM);
mm.free;
query1.post;
query1.Edit;
MM:=TMemoryStream.Create;
OleVariant.SaveToStream(MM);//此处为你的ole变量名。
MM.seek(0,0);
TBlobField(query1.fieldByName('olevar')).LoadFromStream(MM);
mm.free;
query1.post;
解决方案 »
- 请教:如何将table中当天的记录select到一个txt档中?
- 网上交易的项目难道都是骗局吗?我该怎么做?
- 来, 签个名, 通宵没睡的举个手
- 一个关于TComboBox控件的问题。
- 实在非常不明白为什么现在的论坛会搞的那么差,很多人都走光了,经常登陆不了,我非常伤心,散分
- 求GB转unicode的delphi源码,在线等待,急!
- Sender:TObject我该赋给它什么?
- 请问:delphi连接Access数据库,用table.recno显示当前记录为何一直是负数?
- 怎样在注册表中新建一个REG_MULTI_SZ类型的值?
- 记录定位问题 ????急!!!!!!!!!!
- 控件开发的一个问题:如何在TreeView中加入一个指向别的控件的属性
- 怎么换了个动画还是原来那个
var OleVar: OleVariant;
TBlobField.AsVariant := OleVar;2、
uses DB;procedure TForm1.Button1Click(Sender: TObject);
var OleVar: OleVariant;
s: Pchar;
mmstrm: TMemoryStream;
0A blobField: TBlobField; //使用时是FieldByName('blobField')
begin
OleVar := 'AASSSSSS';
s := PChar(VarToStr(OleVar));
0A //ShowMessage(s);
mmstrm := TMemoryStream.Create;
mmstrm.Write(s^,Length(s));0D
mmstrm.Position := 0;
blobField.LoadFromStream(mmstrm);
FreeAndNil(mmstrm);
end;