Veritabanına VARCHAR Olarak Kaydettiğim Resimleri..Ağ'da...

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Veritabanına VARCHAR Olarak Kaydettiğim Resimleri..Ağ'da...

Mesaj gönderen Turki »

Selamlar Veritabanına VARCHAR (ALPHA) Olarak Okutarak Kaydettiğim Resimleri..Ana Makinada Table de ;

"RESIM" OLARAK belirlediğim sutunda Yolu:
C:\RESIMLER\DOGA.BMP
C:\RESIMLER1\RUMUZ.BMP
C:\ARSIV\RESIM\DAĞ.BMP

Olarak gözüküyor.Ana Makinada kaydettiğim resimleri Terminal makinalar görmüyor.Ama Terminallerde Kaydettiğim resimleri Ana Makina Görüyor ,(Tabi Resimler Klasörü Kendisinde olduğu için) Tabi böyle olunca Terminal Makinada,DBGridde Resim gösterirken hata veriyor..Bunu nasıl halledebilirim..
Kullandığım kodlar:Kaydetmekiçin(Sadece Yolunu Kaydediyorum):

Kod: Tümünü seç

procedure TForm1.BitBtn10Click(Sender: TObject);
begin
 Table1.Edit;
 Table1RESIM.AsString:= openPicturedialog1.FileName;//veritabanındaki RESIM alanına opendialog1 deki yolun ismini yaz.
 Table1.Post;
end;
Resimin Imagede Gösterimi içinde:

Kod: Tümünü seç

procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Image1.Picture.LoadFromFile(Table1.fieldByName('RESIM').AsString);
end;
...................

Kod: Tümünü seç

procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Image1.Picture.LoadFromFile(Table1.fieldByName('RESIM').AsString);
end;
Kullanıyorum..Lütfen Yardım..Yinede Herkesten Allah Razı olsun.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Mesaj gönderen m_ekici »

Eğer prg. terminallerde tek tek yüklü değilse resimleri programın yüklü olduğu kataloğun altına kaydedin derim.

Kod: Tümünü seç

YOL:=ExtractFilePath(Application.ExeName);
If RightStr(YOL,1)<>'\' Then YOL:=YOL + '\'; // 98 de \ koymayabiliyor


Image1.Picture.LoadFromFile(YOL+'Resimlerim\'+Table1.fieldByName('RESIM').AsString);  // Tabloya sadece dosya adını kaydetmen lazım

kolay gelsin
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Mesaj gönderen Turki »

Resimler diye terminallerdede klasör var Resimi her terminal kendi klasöründen kaydediyor.....her Terminalde Proğram kurulu.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Eğer bütün bilgisayarların gördüğü bir bilgisayar varsa resim dosyasının adresini ağdaki adresi olarak veritabanına yazarsanız işinizi görebilir.
C:\Belgelerim\Resimler\Resim0001.BMP şeklinde değilde:
\\Hakancan\C\Belgelerim\Resimler\Resim0001.BMP şeklinde.

Eğer kurulu bilgisayar sisteminizde bu mümkün değilse ikinci bir yol olarak
TCP/IP (Server socket) kodları yazarak (TServerSocket, TClientSocket) dosyayı client'lara gönderebilirsiniz.

Veya belki de en uygunu olarak dosyaları veritabanına kaydedip herkesin veritabanından erişmesini sağlayabilirisiniz.

İyi çalışmalar.
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Mesaj gönderen Turki »

Çok Sağolun Bende Bunun için uğraşıyorum.

\\AnaMak\C\Belgelerim\Resimler\Resim0001.BMP Tüm Terminaller kayıtı bu şekilde yaparsa sorun kalmayacak yani Resimler Hangi Term'de olursa olsun o yolu kaydettirirsek O zaman tüm makinalar Tabledeki "RESIM" resim sütununa hedeflenip oradan resimleri okuyacak.
ama kaç gündür kafa durdu bunun için değişik kodlar kullanıyorum ama bir türlü toparlıyamıyorum..
Cevapla