عرض الصورة في قاعدة البيانات
#1
عندي مشكلة في التعامل مع قاعدة البيانات لدراج صورة في قاعدة البيانات

مع العلم ان اضفت Jpeg في قسم USER

وادرجت قاعدة جديدة فيها الحقل G الي هو خاص بدراج الصور

المشكلة تكمن في الكود زر الادخال :

Table1Image.LoadFromFile(Edit2.Text);

هذي صورة توضح المشكلة باتمام

[صورة: er1d.jpg]
الرد
#2
أولا مرحبا بك معنا أخي الحبيب تُفيد و تستفيد إن شاء الله .
يمكنك استخدم مكون TSMDBGrid الذي طرحه أخونا الافضل Kachwahed
استخدم مكون TSMDBGrid
وهو مكون مجاني ومفتوح المصدر ويحتوي هذه الخاصية أيضا.

رابط الموضوع هنا :
http://www.delphi4arab.net/forum/showthr...p?tid=2787
ملاحظة لك أخي الحبيب :
لا تنس طرح السلام أولا في كتاباتك اللاحقة.:disgust:
دمت في رعاية الرحمن و حفظه.
بالتوفيق.
:monster1:
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#3
السلام عليكم
http://www.delphi4arab.net/forum/showpos...ostcount=2
تجدهما هنا:
http://www.delphi4arab.net/forum/showthread.php?tid=22
شخصيا أفضل هذه:
PHP كود :
procedure TForm1.btnLoadClick(Sender: TObject);
var
  
Photo: TPicture;
begin
  
if OpenPhoto.Execute then
  begin
    Photo 
:= TPicture.Create;
    try
      
Photo.LoadFromFile(OpenPhoto.FileName);//OpenPhoto is TOpenPictureDialog
      
DBPhoto.Picture.Graphic.Assign(Photo.Graphic);
    finally
      
Photo.Free;
    
end;
  
end;
end;

procedure TForm1.btnDeleteClick(Sender: TObject);
begin
  
if MessageDlg('Do you want to delete this photo?',
    
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    DBPhoto
.Picture.Graphic.Assign(nil);
end; 
وهذه طريقة لحفظ أي ملف:
PHP كود :
{
  If 
you develop a database related software, then a very popular task is to
  save some files 
(documents/images/reports/etc) in some BLOB field of table
  
and use these saved data later.
  
In this tip I want to show how this task could be solved.
}

// To save a file to BLOB:
procedure TForm1.Button1Click(Sender: TObject);
var
  
blob: TBlobStream;
begin
  blob 
:= yourDataset.CreateBlobStream(yourDataset.FieldByName('YOUR_BLOB'), bmWrite);
  try
    
blob.Seek(0, soFromBeginning);
    
fs := TFileStream.Create('c:\your_name.doc', fmOpenRead or
      
fmShareDenyWrite);
    try
      
blob.CopyFrom(fs, fs.Size)
    finally
      
fs.Free
    end
;
  finally
    
blob.Free
  end
;
end;
  
// To load from BLOB:

procedure TForm1.Button1Click(Sender: TObject);
var
  
blob: TBlobStream;
begin
  blob 
:= yourDataset.CreateBlobStream(yourDataset.FieldByName('YOUR_BLOB'), bmRead);
  try
    
blob.Seek(0, soFromBeginning);

    
with TFileStream.Create('c:\your_name.doc', fmCreate) do
      try
        
CopyFrom(blob, blob.Size)
      finally
        
Free
      end
;
  finally
    
blob.Free
  end
;
end;

{
  
Using this code you can work with any database engine (BDE/ADO/DAO/ODBC/etc)
  and 
any file format (document of MS Word, spreadsheet of MS Excel, bitmap or
  
jpeg pictures, wav-files etc)
} 
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#4
ولا واحدة نفعت

المشكلة عندي ليست في الكود المشكلة تكمن ماذا اضيف في uses حتى تعمل الصور من قاعدة البيانات
هذا الكود الذي استعملته هل هو صحيح ام فية خلل

كود :
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, DBCtrls, DB, Grids, DBGrids, DBTables, Jpeg, ExtDlgs; type TForm1 = class(TForm) Table1: TTable; DBGrid1: TDBGrid; DataSource1: TDataSource; DBImage1: TDBImage; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Table1Name: TStringField; Table1Image: TGraphicField; Edit1: TEdit; Edit2: TEdit; OpenPictureDialog1: TOpenPictureDialog; procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.SpeedButton3Click(Sender: TObject); begin if OpenPictureDialog1.Execute then Edit2.Text:= OpenPictureDialog1.FileName; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin Table1.Insert; Table1Name.Value :=Edit1.Text; Table1Image.LoadFromFile(Edit2.Text); end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin Form1.Close; end; end.
الرد
#5
أنت تحاول رفع صورة بصيغة Gif وهي غير مدعومة
استخدم مكون أو صيغة أخرى.
الرد
#6
سوف ادرج لكم مثال يوضح اين هي المشكلة
لم يكتمل برمجتة لاكن اول ما انتهي منه اعرضه بالمنتدى


الملفات المرفقة
.rar   Print Card2.rar (الحجم : 63.58 ك ب / التحميلات : 269)
الرد
#7
السلام عليكم
انظر في هذا الرابط لعلك تجد مايفيدك
http://www.delphi4arab.net/forum/showthr...p?tid=3375
الرد
#8
طبعا يحدث خطأ لأنك تحاول كتابة TPicture في Boolean!
استبدل سطر الخطأ بـ
كود :
Table1Image.Assign(Image1.Picture);
الرد
#9
PHP كود :
كود:
Table1Image.Assign(Image1.Picture); 

مشي الحال مع هذا الكود

لاكن هل يسقوم بحفظ الصورة في قاعدة البيانات كيف استطيع معرفه ذلك

هل استطيع ادرج DBImage1 عند الوضع على الحقل يظهر صورته ,,
الرد
#10
إقتباس :هل يسقوم بحفظ الصورة في قاعدة البيانات كيف استطيع معرفه ذلك
أجل، يمكنك التأكد من ذلك عند استرجاع الصورة، وعدم ظهور أي رسالة خطأ Smile
إقتباس :هل استطيع ادرج dbimage1 عند الوضع على الحقل يظهر صورته ,,
أجل، لِم لا تُجرب ؟
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم