BaiT |
Отправлено: 10.06.2006, 17:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Подскажите пожалуйста, как вставить картинку в базу данных формата dBase. Механизм доступа к БД — ADO.
Поле под картинку — BLOB OLE Object.
Стандартным способом:
ADOTable1PICTURE->LoadFromFile("c:\\T.bmp");- не работает.
Мне посоветовали через потоки TStream, но я без понятия, что это такое.[CODE]
Отредактировано BaiT — 10/06/2006, 17:16
|
|
BaiT |
Отправлено: 11.06.2006, 17:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Или напишите ссылки, где можно прочитать про работу с БД формата dBase.
|
|
Konstantine |
Отправлено: 11.06.2006, 23:00 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
не знаю есть и в dBase BLOB, но если есть. то через Stream делаю так (кусок моей проги на чтение картинки из базы):CODE | TMemoryStream *st=new TMemoryStream;
((TBlobField*)(Query->FieldByName("Image")))->SaveToStream(st);
st->Position=0;
Image[idx]->LoadImageFromStream(st);
delete st;
|
P.S.:у меня в проге использую GIF и данный способ требует чтоб в картинку и ранне был загружен GIF-рисунок (я просто неуверен что правильно создам-освобожу память, лучше загружу файлик 1х1 прозрачный )
Отредактировано Konstantine — 11/06/2006, 23:02
|
|
BaiT |
Отправлено: 12.06.2006, 01:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Спасибо за пример с потоками, теперь более менее понятно как ими пользоваться.
Однако картинки упорно не хотят загружаться в БД. Либо вообще игнорируют все действия, либо при вызове функции Post() выкидывается сообщение:
"Произошли ошибки при выполнении многошаговой операции. Проверьте значения всех операций."
Может я подключение к БД криво сделал? Вот мой ConnectionString:
"Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog=C:\DataBase" — я в ней не разбирался особо, поэтому тыкал наугад.
Помогите пожалуйста, а то я совсем запутался.
Отредактировано BaiT — 12/06/2006, 01:24
|
|
BaiT |
Отправлено: 12.06.2006, 22:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Все, ошибка исправилась. Подвох был именно в способе подключения к БД. Как и предположил — кривой ConnectionString оказался.
|
|