Форум: "Базы";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];
ВнизКартинка в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c