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

Вниз

Картинка в access   Найти похожие ветки 

 
Sam Plastinin   (2003-07-22 09:43) [0]

Здравствуйте! У меня следующая ситуация - в access"овской базе мне необходимо хранить картинки, для чего я задал данному полю тип "поле объекта OLE". Теперь, пытаясь вывести эту картинку в DBImage я получаю ошибку - дескать в поле нет картинки. В различных faq"ах и kuliba"х первым делом прелагается сделать отображение через blobstream, но то ли в 6-х Дельфях это все не поддерживается, то ли как то по-другому реализовано - не могу разобраться. Помогите пожалуйста, как лучше поступить. Заранее благодарю!


 
sniknik ©   (2003-07-22 10:55) [1]

> DBImage я получаю ошибку
ложи картинку в дельфях, а не в Access-е.
к примеру

ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromFile(Edit1.Text, ftGraphic);
ADOCommand1.Execute;


> но то ли в 6-х Дельфях это все не поддерживается
конечно не поддерживается, это надо на них программировать
чтото вроде
var st: string;
Stream: TMemoryStream;
begin
if ADODataSet1.Active then begin
Stream:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(Stream);
st:= ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+St;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromStream(Stream, ftGraphic);
ADOCommand1.Execute;
finally
Stream.Free;
( например счас выяснится, что примеры на ADO я совершенно зря приводил, у вас к нему отврашение(необязательно конечно)
> DBImage я получаю ошибку
ложи картинку в дельфях, а не в Access-е.
к примеру

ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromFile(Edit1.Text, ftGraphic);
ADOCommand1.Execute;


> но то ли в 6-х Дельфях это все не поддерживается
конечно не поддерживается, это надо на них программировать
чтото вроде
var st: string;
Stream: TMemoryStream;
begin
if ADODataSet1.Active then begin
Stream:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(Stream);
st:= ADODataSet1.FieldByName("AUTOID").AsString;
ADOCommand1.CommandText:= "UPDATE MyTable SET ImField=:ImField WHERE AUTOID="+St;
ADOCommand1.Parameters.ParamByName("ImField").LoadFromStream(Stream, ftGraphic);
ADOCommand1.Execute;
finally
Stream.Free;
end;
end;
end;


> как лучше поступить
вопрос вопросов, ответа не бывает без отрыва от конкретной ситуации. (например счас выяснится, что примеры на ADO я совершенно зря приводил, у вас к нему отврашение(необязательно конечно)) ну и дело предпочтений конечно. (иногда закрываеш глаза на явный недостаток метода, по разным причинам)


 
Sam Plastinin   (2003-07-22 11:12) [2]

спасибо!


 
Silla ©   (2003-07-22 13:05) [3]

Попробуй посмотреть
http://www.all-for-delphi.narod.ru/files/example/picture.rar


 
nv-vetal ©   (2003-07-22 16:42) [4]

надо через Делфи вставить картинку технология АДО, а потом уже мона смотреть. Все другие методы не работают.


 
sniknik ©   (2003-07-22 21:27) [5]

nv-vetal © (22.07.03 16:42)
> Все другие методы не работают.
поспорим?


 
nv-vetal ©   (2003-07-23 16:04) [6]

Nicolay, я знаю что стрельцы любят спорить, но тот метод что я предложил самый простой.


 
Sam   (2003-07-28 11:45) [7]

Я так понял, что все предлагаемые мне советы предназначены для записи картинки в таблицу БД, а как мне вытащить ее на свет божий, т.е. отобразить в image или dbimage?


 
sniknik ©   (2003-07-28 12:55) [8]

sniknik © (22.07.03 10:55)
>> DBImage я получаю ошибку
>ложи картинку в дельфях, а не в Access-е.
....
если положиш так, то ошибки не будет у DBImage параметры на поле пропишеш и все.

для image анологично обратный метод 2.



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
3-68224
М. Дмитрий
2003-07-27 20:01
2003.08.21
Имена таблиц в MSAccess?


3-68215
niko4543
2003-07-28 09:46
2003.08.21
Как всегда DBGrid


8-68417
Маришка
2003-04-23 09:55
2003.08.21
MediaPlayer


1-68351
Ned
2003-08-08 10:53
2003.08.21
Create и запуск формы, по наименованию типа


14-68442
Лёша
2003-08-04 11:39
2003.08.21
МУЖИКИ, есть ли способ сделать форму не только активной