Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Помогите с импортом в БД   Найти похожие ветки 

 
Бадян ©   (2002-06-29 01:03) [0]

Помогите с импортом в БД

Здравствуйте, уважаемые Мастера!

Не подскажите как в поле Blob загрузить какой-нить файл?

Извиняйте, но я наСильник. Нижеприведенный пример как на зло не работает. Где я неправ?

if (OpenDialog1->Execute())
{
TBlobStream *pStream;
TMemoryStream *pms = new TMemoryStream();
pms->LoadFromFile(OpenDialog1->FileName);

Table1->Edit();
if (Table1->State == dsEdit)
{
pStream = new TBlobStream(Table1Photo, bmReadWrite);
try
{
pStream->Write(pms->Memory, pms->Size);
Table1->Post();
}
__finally
{
delete pStream;
}
}
delete pms;
}

Заранее благодарю.


 
Lola ©   (2002-06-29 21:41) [1]


var Bm: TMemoryStream;
Jp: TJpegImage;
begin
Table1.Edit;
Image1.Picture.LoadFromFile(OpenDialog1.FileName); // Загружает изображение в компонент из файла
Jp:=TJpegImage.Create;
Jp.Assign(Image1.Picture.Bitmap); //Помещаешь изображение в класс TJpegImage ;
Bm:=TMemoryStream.Create;
Jp.SaveToStream(Bm); // Сохраняешь Jpeg в потоке
Bm.Seek(0,0);
Dm.Table1PHOTO.LoadFromStream(Bm); //Загружаешь Jpeg в поле через поток
Bm.Free;
Jp.Free;
Table1.Post;
end;



 
kaif ©   (2002-06-30 00:39) [2]

Я как-то сталкивался с тем, что TBlobStream не надо удалять. Правда я работал с Delphi и это был TIBBlobStream. Посмотри внимательно, может дело в этом. В Help, помнится, что-то говорилось о том, что потоки Blob освобождаются системой автоматически и их не нужно разрушать. Хотя в билдере могут быть отличия в этом вопросе...
Уточни в чем ошибка. Если access violation, то дело, скорее всего в этом. Можно еще вместо write использовать LoadFromStream для загрузки байтов в BlobStream из MemoryStream.


 
Бадян ©   (2002-06-30 23:29) [3]

Я давно считаю, что ребят из борланда надобно на мыло помаленьку сплавлять.
Пример то я из хелпа выдрал - не сам же придумал. Вот такие дела.

Всем спасиб за помощь. У меня уже все работает.
Вот так:
Table1Photo->LoadFromFile(FileName);
Это был первый вариант, но он по понятному делу не работал, ибо я забыл про Table1->Edit(); - вот и начал в хелпе рыться. До чего это привело - сами видите.



Страницы: 1 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
3-70671
Aleksandr
2002-07-02 12:26
2002.07.22
Как можно вылечить такую ошибку:


3-70640
TAN_K
2002-07-01 14:51
2002.07.22
РАБОТА С БАЗАМИ ДАННЫХ


3-70579
RDA
2002-06-27 15:20
2002.07.22
Firebird и IBAdmin3


1-70804
Ulugbek
2002-07-10 10:30
2002.07.22
Про InstallShield.


3-70615
Dmitr
2002-06-28 09:31
2002.07.22
Что влияет на PDOXUSRS.LCK ?