如何将blob数据从delphi 7(ado组件)插入oracle xe
答案 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 driver
与blob fields
不兼容,请尝试使用Oracle OLEDB provider
。
答案 1 :(得分:0)
请注意,Oracle有一种处理LOB的特殊方法。它使用“LOB定位器”(一种句柄)来对LOB执行操作。例如,INSERT返回一个LOB定位器,然后用于填充LOB。该操作可以由用于访问Oracle的驱动程序/库“幕后”执行,或者可能需要一些编码。