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)