Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Картинка в BLOB-e [D6, XP]


Id ©   (2006-09-18 15:55:00) 

Здраствуйте еще раз.
Не могу сохранить картинку в базу(Fb 1.5),
procedure TFRg.Button1Click(Sender: TObject);

begin
 DataModule1.TrUpdate.StartTransaction;
  try
    with DataModule1.IBUpdate do begin
      close;
      SQL.Clear;
      SQL.add('update rentgen set OPIS=:OPIS,PIC=:PIC,nazn=:nazn where id='+edit1.Text);
      Prepare;
      ParamByName('OPIS').AsBlob:=RichEdit1.Lines.Text;
      ParamByName('PIC').Assign(Image1.Picture.Bitmap);

      ParamByName('nazn').AsInteger:=0;
      ExecSQL;
    end;
  except
   DataModule1.TrUpdate.Rollback;
  end;
  try
   DataModule1.TrUpdate.Commit;
  except
   DataModule1.TrUpdate.Rollback;
  end;
close;
end;

Подскажите синтаксис выделенной строчки?


Johnmen   (2006-09-19 15:51:00) [1]

Вместо FieldByName ес-но ParamByName.


Johnmen   (2006-09-19 15:48:00) [2]

IBDataSet1.Edit;
B:=IBDataSet1.CreateBlobStream(IBDataSet1.FieldByName('BLB') as TBlobField, bmWrite);
Image1.Picture.Bitmap.SaveToStream(B);
IBDataSet1.Post;
B.Free;


Id   (2006-09-19 15:14:00) [3]

Задам вопрос по другому.
Можно ли каким-то образом сохранить картинку в потоке BLOB  через параметры, так как это делается с текстом?

> ParamByName('OPIS').AsBlob:=RichEdit1.Lines.Text;


Id   (2006-09-18 16:33:00) [4]

Вот это нашел на Ibase.ru
IBDataSet1.Edit;
B:=IBDataSet1.CreateBlobStream(IBDataSet1.FieldByName('BLB') as TBlobField, bmWrite);
B.LoadFromFile('c:\blob.bin');
B.Free;
IBDataSet1.Post;

Преобразую

procedure TFRg.Button1Click(Sender: TObject);
var
b:TIBBlobStream;
begin
DataModule1.TrUpdate.StartTransaction;
 try
   with DataModule1.IBUpdate do begin
     close;
     SQL.Clear;
     SQL.add('update rentgen set OPIS=:OPIS,PIC=:PIC,nazn=:nazn where id='+edit1.Text);
     Prepare;
     ParamByName('OPIS').AsBlob:=RichEdit1.Lines.Text;
     B:=CreateBlobStream(ParamByName('OPIS') as TBlobField, bmWrite);
     b.SaveToStream(ParamByName('PIC'));
     b.free;

     ParamByName('nazn').AsInteger:=0;
     ExecSQL;
   end;
 except
  DataModule1.TrUpdate.Rollback;
 end;
 try
  DataModule1.TrUpdate.Commit;
 except
  DataModule1.TrUpdate.Rollback;
 end;
close;
end;

Не компилируется-
"[Error] Rentgen.pas(123): Undeclared identifier: 'TBlobField'
[Error] Rentgen.pas(123): Undeclared identifier: 'bmWrite'
[Error] Rentgen.pas(129): Incompatible types: 'TPersistent' and 'TIBBlobStream'"
Подскажите как правильно?


Desdechado   (2006-09-18 16:05:00) [5]

SaveToStream
то же самое, что и при чтении, только наоборот

не дубли, забанят!
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1158580517&n=18


Id   (2006-09-18 16:02:00) [6]

Выскакивает ошибка "Unsupported feature"


Наверх

Титульная страница Поиск, карта сайта Написать письмо