Главная страница
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.015 c
7-70937
Jek_218
2002-04-19 22:42
2002.07.22
Помогите плиз!!!


7-70930
YY
2002-04-30 18:51
2002.07.22
Ламерский вопрос по встроенному Assembler у


3-70649
dimanew
2002-07-02 05:06
2002.07.22
Когда используешь TTable при каждом запросе постоянно


8-70832
d.u.k.e
2002-03-07 02:44
2002.07.22
координаты


1-70681
AL2002
2002-07-08 19:09
2002.07.22
кАК выбить прогу?