Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-68198
ray_w
2003-07-25 19:40
2003.08.21
DBGrid?


14-68489
sewix
2003-08-06 07:56
2003.08.21
Как обжать UTP на 100 мегабит


1-68319
IGoRka
2003-08-08 17:58
2003.08.21
как узнать завершение роботи программи ...


1-68336
Dysan
2003-08-08 11:59
2003.08.21
объект в dll


14-68472
@@lex
2003-08-06 10:28
2003.08.21
Игральные карты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский