Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Внизкартинки в Oracle9i Найти похожие ветки
← →
UncleRu (2002-10-02 20:40) [0]Здраствуйте, профессионалы!
Использую для связи с Oracle9i DOA (Direct Oracle Access) и стоит задача записывания BLOB-полей (фотографий). Подскажите, плиз, как можно осуществлять запись и считывание картинок в базу (из базы) Oracle9i не используя BDE и промежуточных файлов, а используя потоки (TStream) и DOA. Буду благодарен за готовый пример.
← →
fnatali (2002-10-03 06:24) [1]В поле типа LONG RAW.
var
bit : Tbitmap;
MS : TMemoryStream;
bit:=Tbitmap.Create;
// Чтение
MS := TMemoryStream.Create;
TBlobField(OCIQuery1.FieldByName("foto")).SaveToStream(MS);
MS.Seek(soFromBeginning, 0);
if ms.Size>0 then
begin
bit.LoadFromStream(ms);
end;
...
bit.free;
// Занесение
ms := TMemoryStream.Create;
bit.SaveToStream(ms);
with OCIQuery1 do begin
active:=false;
sql.clear;
sql.add("update vid set foto=:par where id=:par1");
parambyname("par1").asinteger:=nom;
ParamByName("par").DataType := ftBlob;
ParamByName("par").ParamType := ptInput;
ParamByName("par").LoadFromStream(ms,ftBLOB);
execsql;
end;
ms.free;
← →
UncleRu (2002-10-04 00:26) [2]Спасибо за совет. Но что-то я не совсем просёк как всё это через Oracle Call Interface реализовывать. Откуда эти OCIQuery брать? Может кто подскажет как всю эту процедуру через "стандартный" TLobLocator сделать?
← →
fnatali (2002-10-04 06:17) [3]OCIQuery - это компонент из библиотеки NCOCI для доступа к Oracle. Если ты пользуешься DOA, то используй оттуда аналогичный. Здесь не принципиален вид DataSet-а, IMHO.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c