Delphi dokuman yonetimi
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.
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.
Delphi dokuman yonetimi
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...
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...
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.
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.
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?
şö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?
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
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
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
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.
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.
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...
İyi Çalışmalar...
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;
Re: Delphi dokuman yonetimi
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
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
Re: Delphi dokuman yonetimi
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.
@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
www.polisoft.com.tr
Re: Delphi dokuman yonetimi
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