2011-01-17 1 views

ответ

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; 

с использованием потока, чтобы загрузить данные

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.

Как последний совет, если вы можете, попробуйте использовать другие компоненты для подключения к ORACLE как DBEXPRESS, ANYDAC или ODAC компонентов

+0

спасибо. Ваш совет и все – user578332

0

Имейте в виду, что Oracle имеет особый способ обработки больших объектов. Он использует «Локаторы больших объектов» (своего рода ручки) для выполнения операций с большими объектами. INSERT возвращает локатор LOB, который затем используется, например, для заполнения LOB. Эта операция может выполняться «за кулисами» драйвером/библиотекой, используемой для доступа к Oracle, или может потребовать некоторого кодирования.

 Смежные вопросы

  • Нет связанных вопросов^_^