delphi存取Blob字段

来源:互联网 发布:越狱后抹除数据白苹果 编辑:程序博客网 时间:2024/05/21 10:02

1.连接
用Delphi中的TADOQuery查询Oracle10G中的数据表时,Open时提示"数据类型不被支持"的处理方法: 原因是你用的ADO   for   ORACLE的驱动是微软的Microsoft OLE DB provider for Oracle,不支持BLOB字段, 应使用ORACLE的驱动ORACLE provider  for OLE  DB,如果未装Oracle,去Oracle公司网站下载这个驱动.
Microsoft OLE DB provider for Oracle 的连接字符串: Provider=MSDAORA.1;Password=nchyuser;User ID=nchyuser;Data Source=ncms;
ORACLE  provider for OLE DB的连接字符串: Provider=OraOLEDB.Oracle;Password=nchyuser;Persist Security Info=True;User ID=nchyuser;Data Source=NCMS;Extended Properties=""
使用ORACLE provider for  OLE  DB的连接字符串就OK.


2.
CLOB类型数据的存取
{假设表t中B字段是CLOB类型}
{保存}
procedure TForm1.Button1Click(Sender: TObject);
begin
  with ADOQuery1 do
  begin
    Close;
    Connection:=ADOConnection1;
    SQL.Clear;
    SQL.Add('select A,B from t where 1<>1');
    Open;
    Append;
    FieldByName('A').AsInteger:=1;
    TBlobField(FieldByName('B')).LoadFromFile('d:\1.txt');
    try
    Post;
    except
      cancel;
      showmessage('文件保存失败,请重试!');
      exit;
    end;
    showmessage('文件保存成功!');
  end;
end;


{读}
procedure TForm1.Button2Click(Sender: TObject);
var
  S:TADOBlobStream;
begin
  with ADOQuery1 do
  begin
    Close;
    Connection:=ADOConnection1;
    SQL.Clear;
    SQL.Add('select A,B from t where A=1');
    Open;
    if not IsEmpty then
    begin
      s:=TADOBlobStream.Create(TBlobField(FieldByName('B')),bmRead);
      s.SaveToFile('d:\2.txt');
      s.Free;
      showmessage('文件读取成功!');
    end else
      showmessage('无数据!');
  end;
end;
根据你要保存的数据,自己改变一下
--------------------------------------------

 

stream:TClientBlobStream,TADOBlobStream,

http://www.cnblogs.com/del/archive/2010/02/04/1663860.html 使用Blob字段

 

midas

主要错误及解决方法:
1),可以考虑在客户端和服务器内uses midaslib单元,这样就不用发布midas.dll文件了。
2),或者在程序里用代码注册 也可以winexec(’regsvr32 c:\windows\system32\midas.dll‘,SW_show)

原创粉丝点击