![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с чтением из BLOB поля в стрим... [D4, IB4.x]
HolyMan © (2004-01-04 00:20:00)
Привет всем!
Вот пример моего кода где я пытаюсь занести значение BLOB поля в стрим по выдает ошибку
var
FreeStream : TBLOBStream;
begin
FreeStream := ibdsDS.CreateBlobStream(ibdsDS.FieldByName("DSFILE"),bmReadWrite);
ошибка в выделенной строке "Не соответствие типов TBLOBStream и TStream"
Помогите с решением этой проблемы...
заранее благодарен...
HolyMan (2004-01-05 22:56:00) [1]
Спасибо. Очень помогли...
kaif (2004-01-05 02:18:00) [2]
HolyMan © (05.01.04 00:02) [3]
поменял тип и все стало нормально...только появился еще один вопрос, вот я создал стрим в котром я так понял храняться все данные из BLOB поля, а как мне теперь извлечь данные из определенной записи или может я что то не понимаю...обьясните пожалуста...
Ну почему же? Ты имеешь теперь данные из BLOB-поля, относящиеся к текущей записи в наборе данных. Перейди на следующую запись
ibdsDS.Next
и опять считай данные в stream. Ты получишь BLOB-данные, относящиеся к другой записи. Если у тебя в BLOB-поле записаны картинки (такой пример есть в DBDEMO к Delphi), то каждая картинка соответствует своей записи.
Dok_3D (2004-01-05 00:24:00) [3]
Мелкая ошибочка, еще раз:
var strFile : TFileStream;
strTemp : TStream;
begin
fsFile := TFileStream.Create("file_name", fmCreate);
strTemp := dsObj.CreateBlobStream(dsObj.FieldByName("FIELD_NAME"), bmRead);
fsFile.CopyFrom(strTemp,0); // Ну вот, теперь твой блоб в файле
strTemp.Free;
fsrFile.Free
end;
Dok_3D (2004-01-05 00:20:00) [4]
var strFile : TFileStream;
strTemp : TStream;
begin
fsFile := TFileStream.Create("file_name", fmCreate);
strTemp := dsObj.CreateBlobStream(Query.FieldByName("FIELD_NAME"), bmRead);
fsFile.CopyFrom(strTemp,0); // Ну вот, теперь свой блоб в файле
strTemp.Free;
fsrFile.Free
end;
HolyMan (2004-01-05 00:02:00) [5]
поменял тип и все стало нормально...только появился еще один вопрос, вот я создал стрим в котром я так понял храняться все данные из BLOB поля, а как мне теперь извлечь данные из определенной записи или может я что то не понимаю...обьясните пожалуста...
Jibskeart (2004-01-04 12:16:00) [6]
или так
FreeStream := TBlobStream(ibdsDS.CreateBlobStream(ibdsDS.FieldByName("DSFILE"),bmReadWrite));
XanderMan (2004-01-04 11:25:00) [7]
Попробуй так:
var
FreeStream : TStream;