Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема записи в BLOB поле: ORA-01403: no data found


Unk ©   (2004-04-03 19:53:00) 

Помогите решить проблему с записью в BLOB, записывая из потока возникает таже проблема
 if OpenDialog1.Execute then
 begin
   OraSQL1.SQL.Text:='UPDATE Blobtest SET file_name   = :file_name, binary_file = EMPTY_BLOB() WHERE id = :id RETURNING binary_file INTO :binary_file';
   OraSQL1.ParamByName('id').AsInteger:=2;
   OraSQL1.ParamByName('file_name').AsString:=ExtractFileName(OpenDialog1.FileName);
 //ниже возникает ошибка ORA-01403: no data found
  OraSQL1.ParamByName('binary_file').AsBLOBLocator.LoadFromFile(OpenDialog1.FileName);
// так тоже не работает   OraSQL1.ParamByName('binary_file').LoadFromFile(OpenDialog1.FileName,ftOraBLOB);
   OraSQL1.Execute;
 end;


Unk   (2004-04-04 12:35:00) [1]

Спасибо. Доступ к базе через ODAC. Я уже локализовал ошибку, необходимо было в строке OraSQL1.ParamByName('binary_file').LoadFromFile(OpenDialog1.FileName,ftOraBLOB);
вместо параметра ftOraBLOB ставить ftBLOB.
Без потока работает тоже прекрасно.


Наталия   (2004-04-04 10:50:00) [2]

Трудно что-либо сказать по данному коду, так как не указаны ни компоненты доступа, ни тип поля в БД...
Могу лишь предложить вариант записи через TMemoryStream - работает без проблем.
MS : TMemoryStream;
   ...
 with QEquipmentUpd do begin
 sql.clear;
 sql.add('update inv_Equipments set icon_of_eq=:p_icon_of_eq where id=:p_id');
 parambyname('p_id').asinteger:=l_id;
 ParamByName('p_icon_of_eq').DataType := ftBlob;
 ParamByName('p_icon_of_eq').ParamType := ptInput;
 ParamByName('p_icon_of_eq').LoadFromStream(MS,ftBLOB);
 execsql;
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо