Delphi dokuman yonetimi

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
elfimtr
Üye
Mesajlar: 3
Kayıt: 25 Eki 2005 10:58

Delphi dokuman yonetimi

Mesaj gönderen elfimtr »

Merhaba,

Delphi ile döküman yönetimi yazılımı yazmak istiyorum. Word, Excel, Powerpoint gibi dosyaları database'e kayıt edip daha sonra kullanıcıların yetkilerine göre paylaştıracağım. Böyle bir uygulamayı nasıl yazabilirim. Bildiniz bir companent varmı? Delphi ile database'e bir dökümanı nasıl kayıt edip sonra geri getirebilirim. :?:

Yardımlarınız için şimdiden teşekkürler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

böyle bir uygulamayı sadece component kullanarak yapabileceğinizi pek sanmıyorum. Yani hazır component şeklinde bulamazsınız, iyice etüd edip sıkı bir kodlama yapmanız lazım.

Ayrıca dökümanların boyutları gittikçe artıyor. MB'larca dosyaları veritabanına koymak ne derece gerekli?

Kolay gelsin.
bumbala
Üye
Mesajlar: 6
Kayıt: 18 Eki 2005 07:34
İletişim:

Mesaj gönderen bumbala »

elfimtr sen benim projeyi anlatmışsın direk olarak ya :)

şöyle söyleyim yapamazsın bence, sakın uğraşma boş yere, başka bi şeyler yap ;)

şaka maka ben bu projeyi okulda (üniversitede) yazılım projesi olarak aldım, henüz çalışmaya başlamadım ama epeyce uğraşıcam (bir sene kadar)...

sen ne için yapmayı düşünüyorsun?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

bumbala yazdı:...
şöyle söyleyim yapamazsın bence, sakın uğraşma boş yere, başka bi şeyler yap ;)
...
Bu tür ibareler pek hoş olmuyor! Arkadaşların şevklerini kırmayalım.

İnanın yapanlar sizden çokta zeki insanlar değil. Onlar da senin benim gibi insan. Önemli olan çalışmak.

Kolay gelsin.
bumbala
Üye
Mesajlar: 6
Kayıt: 18 Eki 2005 07:34
İletişim:

Mesaj gönderen bumbala »

ben zaten şevk kırmak için falan değil aksine yaparken paslaşabiliriz, birbirimizden haberdar olabilir yardımcı olabiliriz diye mesaj yazmıştım, yanlış anlaşıldıysam kusura bakmayın...

Not: yaparsın sen, aslansın sen...
elfimtr
Üye
Mesajlar: 3
Kayıt: 25 Eki 2005 10:58

Mesaj gönderen elfimtr »

Tekrar merhaba,

Haklısınız database'e mb'larca veriyi koymak pek akıllıca değil. Ama bazen böyle çözümler üretmek zorunda kalıyoruz. Peki database'e herhangi bir dosyayi nasil ekleyebilirim. Bununla ilgili bildiğiniz bir örnek varmı?

Teşekkürler..
bumbala
Üye
Mesajlar: 6
Kayıt: 18 Eki 2005 07:34
İletişim:

Mesaj gönderen bumbala »

bu biraz hangi veritabanını kullandığına bağlı sanırım...
elfimtr
Üye
Mesajlar: 3
Kayıt: 25 Eki 2005 10:58

Mesaj gönderen elfimtr »

Veri tabanı olarak tavsiyelere açığım. Hangisi uygunsa onu kullanabilirim.
Kullanıcı avatarı
otherside
Üye
Mesajlar: 65
Kayıt: 11 Mar 2005 02:48
Konum: istanbul

Mesaj gönderen otherside »

arkadaslar bi ara ben ugrasmısıtım ama daha sonradan db yi okadar yormak degil ama size ornek kod gondereyım siz ordan bişiler cıkartırısınız

procedure TForm1.kaydetClick(Sender: TObject);
begin
ADOTable1.append;

blob:=ADOTable1.CreateBlobStream(ADOTable1ICERIK, bmWrite);

try
blob.Seek(0, soFromBeginning);

fs := TFileStream.Create(opendialog1.FileName, fmOpenRead or fmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size) ;
finally
fs.Free
end;
finally
blob.Free ;
ADOTable1.Post;

end;
end;

procedure TForm1.olusuturClick(Sender: TObject);
var dosyadi,uzanti,yol:String;
begin
yol:='C:\Program Files\dosyalama\';
dosyadi:=ADOTable1DOSYA_ADI.Value;
blob :=ADOTable1.CreateBlobStream(ADOTable1ICERIK, bmRead);
try
blob.Seek(0, soFromBeginning);

with TFileStream.Create('C:\Program Files\dosyalama\'+dosyadi, fmCreate) do
try
CopyFrom(blob, blob.Size)

finally
Free
end;


finally
blob.Free
end;
// shellexecute(0,'open','c:\','','',SW_SHOW);

end;
arkadaslar bole bişi bazı eksikleri olabilir artık siz duzeltırsınız baya olmustu bunla ugrasalı kolay gelsin
size ek bilbi daha her olusturdugunuz dosyayı ısteyende tempde acıp degişiklerı database update ederseniz daha saglıklı coozum uretmıs olursunuz İnterbase ve Mssql de calısıyo
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Selamlar.
Bu konuda en iyi çözümü bildiğim kadarıyla "Otonom" yazılım sunuyor.Bilenler vardır, Otonom bir süre önce dağıldı, çekirdekteki yazılımcılar ayrılıp yeni bir firma kurdular vs.Bunları anlatmamın nedeni şu, bahsettiğim çekirdekteki yazılımcılar bu bileşen ve kütüphaneleri tamamen kendileri yazıyorlardı.Veritabanı olarak da yanılmıyorsam MS SQL kullanıyorlar.Office dosya formatları hakkında bir araştırma yapmanızda fayda var.
Kolay gelsin.
moonred
Üye
Mesajlar: 14
Kayıt: 05 Kas 2005 11:13
Konum: İstanbul
İletişim:

Mesaj gönderen moonred »

Bende böyle bir çalışma yapmıştım... MS SQl Server in bir özelliği olan textcopy ile... İşinize yararsa kodu aşağıda...

Kod: Tümünü seç

procedure Tmust_f.Button1Click(Sender: TObject);
var
a:integer;
begin

if getfile.Text<>'' then  begin

edit1.Text:=opd1.FileName;
edit2.text:=ters_cevir(edit1);
dosyaadi.text:=copy(edit1.Text,1,pos('\',edit1.Text)-1);
trim(ters_cevir(dosyaadi));


        dm_f.evrakgrid_qu.DatabaseName:='OFIS';//ana_f.restoreadi_txt.text;
        dm_f.evrakgrid_qu.Close ;
        dm_f.evrakgrid_qu.SQL.Clear ;
        dm_f.evrakgrid_qu.SQL.Add('SELECT SIRA,DOSYAADI,DOSYAYOLU,TARIH FROM EVRAK WHERE MKOD='''+ckodu.Text+'''');
        dm_f.evrakgrid_qu.Active:=True;
        dm_f.evrakgrid_qu.Open;


        dm_f.evrak_qu.DatabaseName:='OFIS';//ana_f.restoreadi_txt.text;
        dm_f.evrak_qu.Close ;
        dm_f.evrak_qu.SQL.Clear ;
        dm_f.evrak_qu.SQL.Add('declare @sonuc int');
        dm_f.evrak_qu.SQL.Add('insert into evrak (MKOD,DOSYAADI,DOSYAYOLU,TARIH,BILGI) VALUES ('''+dm_f.musek_tbMKOD.AsString+''', '''+dosyaadi.Text+''','''+getfile.Text+''','''+copy(tarih.Text,4,2)+'.'+copy(tarih.Text,0,2)+'.'+copy(tarih.Text,7,4)+''',0x0)');
        a:=dm_f.evrak_qu.SQL.Add('set @sonuc = (select cast(@@identity as varchar(100))) ');
        a:=dm_f.evrak_qu.SQL.Add('select @sonuc AS SONUC');
        dm_f.evrak_qu.Active:=True;
        dm_f.evrak_qu.Open;
        sira_ed.Text:=dm_f.evrak_qu.Fields[0].AsString;
//       dm_f.evrak_qu.Active:=False;

        dm_f.evrak_qu.Close ;
        dm_f.evrak_qu.SQL.Clear ;
        dm_f.evrak_qu.SQL.Add('sp_textcopy @srvname = ''OFIS'',');
        dm_f.evrak_qu.SQL.Add('            @login = ''SA'',');
        dm_f.evrak_qu.SQL.Add('            @password = '''',');
        dm_f.evrak_qu.SQL.Add('            @dbname = ''OFIS'',');
        dm_f.evrak_qu.SQL.Add('            @tbname = ''EVRAK'',');
        dm_f.evrak_qu.SQL.Add('            @colname = ''BILGI'',');
        dm_f.evrak_qu.SQL.Add('            @filename = '''+getfile.Text+''',');
        dm_f.evrak_qu.SQL.Add('            @whereclause = " WHERE SIRA='+sira_ed.Text+'",');
        dm_f.evrak_qu.SQL.Add('            @direction = ''I''');
        dm_f.evrak_qu.Active:=True;
        dm_f.evrak_qu.Open;
//        dm_f.evrak_qu.Active:=False;


        dm_f.evrakgrid_qu.DatabaseName:='OFIS';//ana_f.restoreadi_txt.text;
        dm_f.evrakgrid_qu.Close ;
        dm_f.evrakgrid_qu.SQL.Clear ;
        dm_f.evrakgrid_qu.SQL.Add('SELECT SIRA,DOSYAADI,DOSYAYOLU,TARIH FROM EVRAK WHERE MKOD='''+ckodu.Text+'''');
        dm_f.evrakgrid_qu.Active:=True;
        dm_f.evrakgrid_qu.Open;
end;
if getfile.Text='' then begin

     MessageBox(Handle,PChar('"Lütfen Dosya Seçiniz"!...'),'Uyarı',MB_OK);
end;
end;
İyi Çalışmalar...
OKT
Üye
Mesajlar: 2
Kayıt: 14 Ara 2005 10:28

Mesaj gönderen OKT »

Merhaba,
word, excel, powerpoint vs. gibi dosyaları db'de saklamak bence pek doğru bir çözüm değil. bunun için bir ftp server'da bu dosyaların tutulması ve db'de de bu dosyanın orjinal adı, dosya tipi vs. tutulması daha doğru gibi geliyor.

Saygılarımla
Kullanıcı avatarı
calvan
Üye
Mesajlar: 119
Kayıt: 16 Haz 2003 05:10

Re: Delphi dokuman yonetimi

Mesaj gönderen calvan »

s.a

döküman yönetimi konusunda çalışan arkadaşlar oldu mu? Olduysa çalışmalarını paylaşabilirler mi? Yakın zaman içinde bu konuda çalışma yapacağım, şu an planlama aşamasındayım,

1. Taranan dosyalar database demi tutulmalı
2. Dosya klasörlerinde tutulup databese de referans mı tutulmalı

database de tutumak database boyutu sorunu oluşturabilir, klasörde tutmak taranan dosyaların silinmesi riskine açık olur

bu konulardaki fikirlerinizi paylaşabilir misiniz?

herkeze iyi çalışmalar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Delphi dokuman yonetimi

Mesaj gönderen vkamadan »

Merhabalar ,
@OKT arkadaşın dediği gibi DB destekli FTP yöntemi doküman yönetimi için en uygun yöntem, böyle çok ciddi bir çalışmamız olmuştu dosya ları ana makinada kendi yazdığımız multi-thread yapıda dosya transfer etmeye yarayan FTP benzeri özel bir yapıyla arşivleyip DB de referans isimlerini tutuyorduk, 3.parti FTP sunucu kurmak istemezseniz indy FTP server bileşenleriyle çok rahatça FTP server uygulaması yazabilirsiniz örnekleri mevcut fakat multithread değil bizde bu yüzden bir arkadaşa C ile özel bir multithread dosya transfer windows servis uygulaması yazdırmıştık, özetle bu iş için anahtar kelimeniz FTP Server olmalıdır, çok vaktiniz yoksa ücretsiz FTP server uygulamalarından birini kurup uygulamanızdan indy ftp client bileşeniyle dosya gönderip alarak bu işi hızlıca yapabilirsiniz.
Volkan KAMADAN
www.polisoft.com.tr
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Delphi dokuman yonetimi

Mesaj gönderen orhancc »

Yapaccağınz program dökümanları orjinal haliyle mi saklayacak yoksa içeriklerini okuyup veritabanına mı kayıt edecek ve ayrıca Full text search yani dökümanlar içinde arama yaptırmak istiyormusunuz ? Dosyalar veritabanında tutulursa bütünlük açısından iyi olur ancak veritabanı yöneticisine çok iş düşecektir ve veritabanı hızlı şekilde büyüyecektir ancak ftp olarak tuttuğunuzda ise dosyalar bir şekilde diskten silinirse bunun da geri dönüşü olmayacaktır. Seçim sizin
Cevapla