Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2010, 10:29   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Вопрос Ошибка работы с blob полем, в похожем проекте все работает

В одном проекте такой код работает
Код:
procedure TForm1.BtnSaveClick(Sender: TObject);
var
  jpg: TJPegImage;
  ms: TMemoryStream;

begin

   ADOTable1.Edit;
   ADOTable1.Append;
   jpg := TJpegImage.Create;
   jpg.Assign(Image1.Picture.Graphic);
   jpg.CompressionQuality := 20;
   jpg.Compress;
   ms := TMemoryStream.Create;
   jpg.SaveToStream(ms);
   ADOTable1.FieldByName('Eia').Value:=2;
   ADOTable1.FieldByName('1').Value:=inttostr(2);
   (ADOTable1.FieldByName('ea?oeiea') as tBlobField).LoadFromStream(ms);
   ADOTable1.Post;
   ms.Free;
   jpg.Free;

end;
В другом проекте такой код не работает но он отличается не существенно
Код:
procedure TAddData.DELorADDButtonClick(Sender: TObject);
var
  jpg: TJPegImage;
  ms: TMemoryStream;
begin
   if Tabcontrol3.TabIndex=0 then
      begin
         DM.ADOTS.Edit;
         DM.ADOTS.Append;
         jpg := TJpegImage.Create;
         jpg.Assign(Image2.Picture.Graphic);
         jpg.CompressionQuality := 20;
         jpg.Compress;
         ms := TMemoryStream.Create;
         jpg.SaveToStream(ms);
         DM.ADOTS.FieldByName('¹ óäîñòîâåðåíèÿ').Value:=strtoint(sotrNamber.Text);
         DM.ADOTS.FieldByName('Èìÿ').Value:=Name.text;
         DM.ADOTS.FieldByName('Ôàìèëèÿ').Value:=sername.text;
         DM.ADOTS.FieldByName('Îò÷åñòâî').Value:=Otchestvo.text;
         DM.ADOTS.FieldByName('Òåëåôîí').Value:=strtoint(telefon.text);
         DM.ADOTS.FieldByName('Àäðåñ ïî÷òû').Value:=adrespoch.text;
         DM.ADOTS.FieldByName('Àäðåñ àãåíñòâà').Value:=adresagenstva.text;
         DM.ADOTS.FieldByName('Äàòà ïðèåìà').Value:=datapriema.text;
         DM.ADOTS.FieldByName('Îáðàçîâàíèå').Value:=Obrazovanie.text;
         DM.ADOTS.FieldByName('Äîï îáðàçîâàíèå').Value:=dopobrzovanie.text;
         DM.ADOTS.FieldByName('Ïðèìå÷àíèå').Value:=Memo1.text;
         (DM.ADOTS.FieldByName('Ôîòî') as tBlobField).LoadFromStream(ms);
          DM.ADOTS.Post;
          ms.Free;
         jpg.Free;
      end;
end;
ОШибки следующие
undeclared identifer:tBlobField
------||----||-----:LoadFromStream
Lokos вне форума Ответить с цитированием
Старый 24.02.2010, 10:49   #2
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

попробуй эту часть
Код:
(DM.ADOTS.FieldByName('Ôîòî') as tBlobField).LoadFromStream(ms);
написать так
Код:
TBlobField(DM.ADOTS.FieldByName('Ôîòî')).LoadFromStream(ms);
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 24.02.2010, 11:30   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от koma_grusha Посмотреть сообщение
попробуй эту часть
Код:
(DM.ADOTS.FieldByName('Ôîòî') as tBlobField).LoadFromStream(ms);
написать так
Код:
TBlobField(DM.ADOTS.FieldByName('Ôîòî')).LoadFromStream(ms);
не чего не изменилось так же и ругается
Lokos вне форума Ответить с цитированием
Старый 24.02.2010, 11:47   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Вот смотри :
http://programmersforum.ru/showthread.php?p=465005
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 24.02.2010, 13:29   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
там то все заработало и ошибка другая была)))
Lokos вне форума Ответить с цитированием
Старый 25.02.2010, 03:18   #6
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Счастье

проблема была решена когда добавил компонент adotable на форму где выполняется этот код. Когда он находился в datamodule появлялись данные ошибки, подскажите как этого избежать
Lokos вне форума Ответить с цитированием
Старый 25.02.2010, 08:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
подскажите как этого избежать
В том модуле где есть слово tBlobField нужно в uses дописать DB.
И не важно где на форме или в Data Module хранить компоненты.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка с пустым полем и 30.00 в Double Bobrik Общие вопросы .NET 6 25.05.2009 12:06
Начал учить C++, сразу ошибка, хотя делаю все по книге Kn793 Общие вопросы C/C++ 5 03.04.2009 23:56
Mass Effect не работает. Ошибка при запуске. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 05.08.2008 17:14
Сайт из IE работает, из TWebBrowser - ошибка сценария Yuran Работа с сетью в Delphi 6 26.05.2008 22:45
Проблема с Blob полем Constellation БД в Delphi 6 24.01.2008 18:58