delphi oracle blob

时间:2011-01-17 13:20:34

标签: delphi ado delphi-7

如何将blob数据从delphi 7(ado组件)插入oracle xe

2 个答案:

答案 0 :(得分:6)

使用TAdoQuery组件检查这些样本。

直接从文件加载数据

 ADOQuery1.Parameters.AddParameter.Name:='Param1';
 ADOQuery1.Parameters.ParamByName('Param1').LoadFromFile('yourfilename',ftBlob);
 ADOQuery1.SQL.Add('INSERT INTO TableName (FieldName) VALUES (:Param1)');
 ADoQuery1.ExecSQL;

使用Stream加载数据

 ADOQuery1.Parameters.AddParameter.Name:='Param1';
 ADOQuery1.Parameters.ParamByName('Param1').LoadFromStream(AStream,ftBlob);
 ADOQuery1.SQL.Add('INSERT INTO TableName (FieldName) VALUES (:Param1)');
 ADoQuery1.ExecSQL;

您必须知道哪些Microsoft Oracle oledb driverblob fields不兼容,请尝试使用Oracle OLEDB provider

如果可以的话,作为最终建议,尝试使用其他组件连接到ORACLE,如dbexpress,ANYDACODAC组件

答案 1 :(得分:0)

请注意,Oracle有一种处理LOB的特殊方法。它使用“LOB定位器”(一种句柄)来对LOB执行操作。例如,INSERT返回一个LOB定位器,然后用于填充LOB。该操作可以由用于访问Oracle的驱动程序/库“幕后”执行,或者可能需要一些编码。