# Native Code > برنامه نویسی در Delphi > بانک های اطلاعاتی در Delphi >  فیلد تصویر در جدول

## (امید)

*برداشت شده از barnamenevis.com*

__________________________________________________  __________

با سلام

دوستان، من نمی دانم به چه صورت تصویر را به جدول
اختصاص دهم

لطفا مرا راهنمائی کنید


Hamid Reza Afshar 


یک نمونه برنامه برایت مینویسم :

procedure TForm2.Button2Click(Sender: TObject);
var fs: TFileStream;  
     bs: TBlobStream;
begin
if OpenPictureDialog1.Execute then
  with Table1 do begin
   active := true;
   Insert;
   fs := TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead);
   bs := TBlobStream(CreateBlobStream(FieldByName('Graphic'  ), bmWrite));
   bs.CopyFrom(fs, 0);
   bs.Free;
   fs.Free;
   Post;
end;
end;

انمیدونم چرا نمایش متن انگلیسی بد  است؟؟!!


ناصر فدائی (:nas

----------


## aminzadeh_mojtaba

بابا این همه که طول و تفصیل نداره
یک فیلد نوع گرافیک توی جدولت میذاری.مثلاPIC
بعد با کلیک روی Table و اضافه کردن فایلهای به Fieldeditor روی فیلد مورد نظرت کلیک کن.
خاصیت Name  برابر Table1pic  است. فقط با یک خط دستور می تونی اون توی جدولت بذاری
(اسم فایلت رو اینجا می نویسی)Table1Pic.loadFromFile
یا علی مدد

----------


## arshia_

راستی نوع تصویر مهم نیست؟؟؟
مثلا jpeg   , bmp , gif ,     ؟؟؟
احتمالا فقط اونی رو که دلفی پشتیبانی کنه میتونیم استفاده کنیم نه؟؟؟

----------


## mamadoo2002

TDBImage فقط میتونه تصاویر bmp  رو نشون بده . اگر یه شی TDBImage  داری که همه کاره باشه  فبهل مراد ، وگرنه من ترجیح میدم برای فیلد گرافیکی از ،TImage استفاده کنم . البته یه نمه کد نویسی داره.

procedure TForm1.InputImageClick&#40;Sender&#58; TObject&#41;;
begin
   CDS.Append;
   CDSimagetype.AsString &#58;= extractfileext&#40;OD.FileName&#41;;
   CDSPicture.LoadFromFile&#40;OD.FileName&#41;;
    CDS.Post;
end;

procedure TForm1.DataSource1DataChange&#40;Sender&#58; TObject; Field&#58; TField&#41;;
var
  Stream&#58; TStream;
  JPEGImage &#58; TJPEGImage;
  Ext &#58; String;
begin
if &#40;field = nil&#41; or &#40;field = CDSPicture&#41; then
 begin
  if CDSPicture.asstring &lt;> '' then
   begin
    Stream &#58;= CDS.CreateBlobStream&#40;CDSPicture, bmRead&#41;;
    try
     Ext &#58;= uppercase&#40;CDSimagetype.AsString&#41;;
     if Ext = '.BMP' then
       Image1.Picture.Bitmap.LoadFromStream&#40;Stream&#4  1;
     else if Ext = '.JPG' then
       begin
         JPEGImage &#58;= TJPEGImage.Create;
         try
          JPEGImage.LoadFromStream&#40;Stream&#41;;
          Image1.Picture.Assign&#40;JPEGImage&#41;;
         finally
          JPEGImage.Free;
         end;
       end;
    finally
      Stream.Free;
    end;
   end
  else
    Image1.Picture &#58;= nil;
 end;
end;

کد بالا ضمن نمایش تصویر در TImage  فرمت تصویر  را هم  در فیلد imagetype  نشان میدهد.

----------


## shima_rah

*سلام به همگی من تازه واردم  تو رو خدا کمک کنین
من همه اینکارارو انجام دادم 
ولی توی این خط JPEGImage : TJPEGImage;
error می ده باید چیکار کنم . ممنون می شم یکی جواب بده*

----------


## mohsen62

برای ذخیره یک تصویر jpg در جدول پارادوکس ابتدا باید یک فیلد از نوع OLE در جدول ایجاد کنی و بعد
این گزینه را در بخش uses اضافه کن
uses
  jpeg;


حالا برای ذخیره تصویر jpg در بانک پارادوکس از کدهای زیر استفاده کن
var
   FileStream : TFileStream;
   BlobStream: TBlobStream;
begin
  table1.TableName:='data\picture.db';
  table1.Open;
  table1.append;
  FileStream := TFileStream.Create('fire.jpg', fmOpenRead);
  BlobStream := TBlobStream.Create(Table1.FieldByName('pic') as TBlobField,bmWrite);
  BlobStream.Seek(0,soFromBeginning);
  BlobStream.Truncate;
  BlobStream.CopyFrom(FileStream,FileStream.Size);
  FileStream.Free;
  BlobStream.Free;
  table1.Post;
  table1.Close;
end;


و برای بارگیری فایل jpg از داخل بانک اطلاعاتی از این کد ها استفاده کن
var
    FileStream : TFileStream;
    BlobStream : TBlobStream;
    FileName: String;
begin
 table1.TableName:='data\picture.db';
 table1.Open;
 Image1.Picture.Assign(nil);
 BlobStream := TBlobStream.Create(Table1.FieldByName('pic') as TBlobField, bmRead);
 if BlobStream.Size =0 then begin
   BlobStream.Free;
   Exit;
 end;
// if FileName <> '' then DeleteFile(FileName);
 FileName := 'e:\Img.jpg';
 FileStream := TFileStream.Create(FileName, fmCreate or fmOpenWrite);
 FileStream.CopyFrom(BlobStream,BlobStream.Size);
 FileStream.Free;
 BlobStream.Free;
 Image1.Picture.LoadFromFile('img.jpg');

 :تشویق:   :چشمک:

----------


## aaaaaaa

دمتون گرم من از صبح رو این دیتابیس کلنجار می رفتم

----------


## (امید)

http://www.1padideh.com/index_files/Page2609.htm

----------


## babak869

از نمونه برنامه ای که در این آدرس هست میتونید استفاده کنید :
http://Delphi-Magic.com/source.php
موفق باشید

----------


## حرفه ای

من از کامپوننت express Quauntum Gride استفاده می کنم 

خیلی خیلی توپه

----------

