Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
PDF-WORD-EXCEL Binary olarak kaydetme ve geri okuma hk
#1
Merhaba,

JPG Resim dosyalarını masaüstü uygulaması veya unigui ile Firebird veritabanına binary olarak kaydedip geri alabiliyorum.

Ancak başlıkta bahsettiğim türden belgeleri hiç denemedim. Bu konuyla ilgili deneyimi olan arkadaş varsa bizimle paylaşabilir mi?

Teşekkürler
Cevapla
#2
BlobFile? Başka bir şeye ihtiyacınız yok ki? JPEg nasıl kaydediyorsanız onu da aynı şekilde alana yükleyeceksiniz.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
Merhaba.

* Sorunuzun açık cevabı, JPG'yi nasıl BLOB alana kaydediyorsanız, her bir binary dosya aynı şekilde kaydedilebilir. Sonuçta bu kaynağa ulaştığınızda tipi neyse ona göre yeniden yapılandırılması gerekiyor.
  
* Diğer yandan (benim de katıldığım) bir kısım kanı, veritabanı sağlığı açısından belgeleri veritabanı içerisinde barındırmamak. Veritabanına eklenecek unsur statik Resource olarak eklenecek döküman vb. ise buna bir diyeceğim yok. Yani bir kullanım kılavuzu, donanım fotoğrafları, kodları vb statik veritabanından kasıt.

Diğer yandan kullanıcı giriş yapacak, güncelleme yapacak, silecek ise bu durumda yapısal boşluklar oluşması söz konusudur.

Önerim, bu dosyaları projenizin ulaşabileceği bir yerde, orjinal adı ve tipi projenizde bu bahsi geçen veritabanında saklı kalmak kaydıyla, tipini projenize özel bir tip, adını da kaydınızda sınıflandırılmış özel bir kod ile barındırmanız yönündedir.

Örneğin : 

A_Dosya.PDF   -> 
  • Veritabanında dosya tipi = "1"  ( 1 PDF anlamında başka bir tabloda yer alabilir ), 
  • Orjinal adı "A_Dosya" (ki bu da encrypt edilerek okunması engellenebilir), 
  • Fiziki konumu - Disk
  • Fiziki konumu - Klasör dizini vs.vs.
uzak istemcide bu dosyaya bir talep oluştuğunda projenizin server modülü bu dosyanın fiziki orjinal halini hazırlayıp FileStream olarak client'a yollayabilir. Böylece arşiviniz güvenli sularda kalacaktır.

Deneyim açısından tam da sizin sorduğunuz şekilde bir projem aktif olarak kullanılmaktadır. 

* TRT'de Seslendirme Modülü olarak bir iş akışı projesi. Belgeler PDF, Fotoğraf, XML-DOC döküman/rapor ve anlık tarama ile yine PDF olarak sistemde sınıflandırılarak arşivleniyor. Bir tür kargom nerede olayı gibi, bütçelemeden, çeviriye, altyazıdan mozaik blurlama ve denetimden yayına teslimine kadar bir akış ve belge trafiğidir.  Her bir yapım, belgesel bölümlerinde dahi her bir bölüm bu akışa dahil olur. Tekrar yayınlarda dahi günün şartlarına göre yeniden akışa girer, teknik yeterliliği olmayan kaynak iade edilir ki onda bile belgeler havada uçuşur. Belgelerin çokluğunu bu yansıtmaya çalıştığım tabloya göre siz hesap edin.  Idea
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#4
Teşekkür ederim yorumlara,
sonuç olarak ben de bu tür dosyaların fiziksel olarak bir klasörde depolanmasını ve dosya konumunun veritabanında tutulmasını destekliyorum. Ki proje de bu şekilde düzenlendi zaten. Amacım farklı bir fayda sağlar mı onu anlamak, ama webde yaptığım araştırmalarda da gördüm kü iskelet aynı olsa da her mimar kendine has bina yapıyor.
Sonuç olarak, dosyaları veritabanına depolama olayını şimdilik rafa kaldırdım Smile
Cevapla
#5
Dediğim gibi bir katalog hazırlıyorsanız veritabanı derli toplu bir yapı sağlar. Örneğini verdiğim şekilde bir döküman / süreç yönetimi söz konusu ise klasörde size özel yerde saklamak daha verimli olur.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
(28-06-2020, Saat: 19:40)mrmarman Adlı Kullanıcıdan Alıntı: Merhaba.

* Sorunuzun açık cevabı, JPG'yi nasıl BLOB alana kaydediyorsanız, her bir binary dosya aynı şekilde kaydedilebilir. Sonuçta bu kaynağa ulaştığınızda tipi neyse ona göre yeniden yapılandırılması gerekiyor.
  
* Diğer yandan (benim de katıldığım) bir kısım kanı, veritabanı sağlığı açısından belgeleri veritabanı içerisinde barındırmamak. Veritabanına eklenecek unsur statik Resource olarak eklenecek döküman vb. ise buna bir diyeceğim yok. Yani bir kullanım kılavuzu, donanım fotoğrafları, kodları vb statik veritabanından kasıt.

Diğer yandan kullanıcı giriş yapacak, güncelleme yapacak, silecek ise bu durumda yapısal boşluklar oluşması söz konusudur.

Önerim, bu dosyaları projenizin ulaşabileceği bir yerde, orjinal adı ve tipi projenizde bu bahsi geçen veritabanında saklı kalmak kaydıyla, tipini projenize özel bir tip, adını da kaydınızda sınıflandırılmış özel bir kod ile barındırmanız yönündedir.

Örneğin : 

A_Dosya.PDF   -> 
  • Veritabanında dosya tipi = "1"  ( 1 PDF anlamında başka bir tabloda yer alabilir ), 
  • Orjinal adı "A_Dosya" (ki bu da encrypt edilerek okunması engellenebilir), 
  • Fiziki konumu - Disk
  • Fiziki konumu - Klasör dizini vs.vs.
uzak istemcide bu dosyaya bir talep oluştuğunda projenizin server modülü bu dosyanın fiziki orjinal halini hazırlayıp FileStream olarak client'a yollayabilir. Böylece arşiviniz güvenli sularda kalacaktır.

Deneyim açısından tam da sizin sorduğunuz şekilde bir projem aktif olarak kullanılmaktadır. 

* TRT'de Seslendirme Modülü olarak bir iş akışı projesi. Belgeler PDF, Fotoğraf, XML-DOC döküman/rapor ve anlık tarama ile yine PDF olarak sistemde sınıflandırılarak arşivleniyor. Bir tür kargom nerede olayı gibi, bütçelemeden, çeviriye, altyazıdan mozaik blurlama ve denetimden yayına teslimine kadar bir akış ve belge trafiğidir.  Her bir yapım, belgesel bölümlerinde dahi her bir bölüm bu akışa dahil olur. Tekrar yayınlarda dahi günün şartlarına göre yeniden akışa girer, teknik yeterliliği olmayan kaynak iade edilir ki onda bile belgeler havada uçuşur. Belgelerin çokluğunu bu yansıtmaya çalıştığım tabloya göre siz hesap edin.  Idea

Teşekkürler değerli görüşlerinizi bizimle paylaştığınız için benim de buna benzer bir projede arşivleme yapmam gerekmişti. Sonrasında iptal oldu fakat tekrar gündeme gelme ihtimali var o zaman icin database e kaydetme olayı sıcak gelmişti ama yazdıklarımızdan sonra tekrar susunmeye karar verdim. Teşekkür ederim
Cevapla
#7
Merhaba,

Tek kullanıcı veya iyi yapılandırılmış bir network sisteminde klasör sistemi en doğru olandır.

Çok kullanıcılı bir mimari var ise, genel işlemleri benzersiz numaralandıracak bir omurga sistemi programa kurup, her işleme bir numara atadıktan sonra işlemleri ağırlaştırmaması için, farklı bir tablo veya veri tabanında ağır kayıtları tutarak devam edebilirisiniz. Veriye kullanıcılardan biri ihtiyaç duyduğunda klasörüne çıktı aldırabilir böylelikle networku çok yormamış olabilirsiniz.

Query1.Edit;
Query1DosyaTipi.Text:='wav';
Query1DosyaVeri.LoadFromFile('c:\ses.wav');
Query1.Post;
Cevapla
#8
Merhaba
çok önceleri OleContainer (Form9.Wole) üzerine yazışmaları çağırıyor. Değiştirip DB ye tekrar keydediyordum.

procedure TForm8.DegistirClick(Sender: TObject);
var 
BILGI:tmemorystream;
begin
screen.Cursor := crHourGlass;
If DATA_.RecordCount<1 Then Exit;
DATA_.Edit;

 try
 BILGI :=TMemoryStream.Create;
 TBlobField(DATA_.FieldByName('ICERIK')).SaveToStream(BILGI); //  load data from field 'templ' into stream
 BILGI.Seek(0, soFromBeginning);
 // load data from stream into olecontainer
 Form9.Wole.LoadFromStream(BILGI);
 BILGI.Free;
 except
   on E:Exception do
 begin
 screen.Cursor := crDefault;
 ShowMessage('Error'+#13#10+E.Message);
 Exit;
 end
 end;
Form9.WindowState := wsMaximized;
Form9.ShowModal;
end;


procedure TForm9.Kaydet1Click(Sender: TObject);
var 
BILGI:TMemoryStream;
begin
 try
  BILGI := nil;
  BILGI :=TMemoryStream.Create;
  Wole.SaveToStream(BILGI); // olecontainer -> stream
  BILGI.Seek(0, soFromBeginning);
   Form8.DATA_ICERIK.LoadFromStream(BILGI);
 except
 end;
 BILGI.Free;
 Form8.DATA_.Post;
 Close;
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Cxgrid Konumunu Dinamik olarak Değiştirmek endmuh 4 500 09-12-2023, Saat: 17:49
Son Yorum: endmuh
  Delphi Sürekli Adı Değişen Excel Dosyasından Veri Çekme bünyamin68 2 610 05-10-2023, Saat: 12:50
Son Yorum: mcuyan
  OPC Server veri okuma enigma 1 374 13-09-2023, Saat: 11:50
Son Yorum: shooterman
  ReadProcessMemory ile veri okuma nasıl yapılır eraendless 2 450 07-09-2023, Saat: 00:35
Son Yorum: veteran
  Excel Aktarım OZCANK 2 435 21-08-2023, Saat: 12:57
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi