herhangi bir dosya kayıt edip okutmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
herhangi bir dosya kayıt edip okutmak
Arkadaşlar,
Herhangi bir dosyayı (pdf,jpg,doc,xls) kayıt edip tekrar nasıl açabilirim ?
bir componenet olmadan.
Teşekkürler
Herhangi bir dosyayı (pdf,jpg,doc,xls) kayıt edip tekrar nasıl açabilirim ?
bir componenet olmadan.
Teşekkürler
Re: herhangi bir dosya kayıt edip okutmak
TStream leri inceleyebilirsin
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
Hocam,
bir çok örnek var ama hepsi jpg veya pdf benim istediğim herhangi bir dosya olabilir.
Teşekkürler
bir çok örnek var ama hepsi jpg veya pdf benim istediğim herhangi bir dosya olabilir.
Teşekkürler
Re: herhangi bir dosya kayıt edip okutmak
dataya binary olarak kaydedip ayrı bir alanda dosya adı ve/veya uzantısı tutarsan gerektiğinde uzantıya göre açabilirsin
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
Anlayamadım ya ? bir kaç örnek buldum ama bir türlü çözemedim herhangi bir format olabilir
kayıt için
kayıt için
Kod: Tümünü seç
procedure TForm1.btn1Click(Sender: TObject);
var
fs: TFileStream;
BlobField: TBlobField;
begin
fs := TFileStream.Create(dlgOpenDOSYA_AC.FileName, fmOpenRead);
BlobField := QRY_1.FieldByName('DOSYA') AS TBlobField;
try
QRY_1.Insert;
BlobField.LoadFromStream(fs);
QRY_1.Post;
finally
fs.Free;
end;
Re: herhangi bir dosya kayıt edip okutmak
bulduğun örnek olayı açık açık anlatıyor zaten.
Formuna bir tane tOpenDialog koy. Adını dlgOpenDOSYA_AC yap.
Tablonda Blob tipinde DOSYA diye bir alan aç.
Query içeriğinde bu tabloyu çek.
Sonra aşağıdaki kod ile istediğin dosyayı kaydedebilirsin.
Okurkende LoadFromStream yerine SaveToStream yaparsın. Sonrada fs.SaveToFile yaparsın olur biter.
Formuna bir tane tOpenDialog koy. Adını dlgOpenDOSYA_AC yap.
Tablonda Blob tipinde DOSYA diye bir alan aç.
Query içeriğinde bu tabloyu çek.
Sonra aşağıdaki kod ile istediğin dosyayı kaydedebilirsin.
Okurkende LoadFromStream yerine SaveToStream yaparsın. Sonrada fs.SaveToFile yaparsın olur biter.
Kod: Tümünü seç
procedure TForm1.btn1Click(Sender: TObject);
var
fs: TFileStream;
BlobField: TBlobField;
begin
if (dlgOpenDOSYA_AC.Execute) and (dlgOpenDOSYA_AC.FileName<>'') then begin
fs := TFileStream.Create(dlgOpenDOSYA_AC.FileName, fmOpenRead);
BlobField := QRY_1.FieldByName('DOSYA') AS TBlobField;
try
QRY_1.Insert;
BlobField.LoadFromStream(fs);
QRY_1.Post;
finally
fs.Free;
end;
end;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
kaydediyor ama resim olarak açıyor sadece,
ben istiyorumki eğer office dosyası ise office ile, pdf ise acrobat ile açsın yani sql kaydedeyim açarken temp alsın ordan açsın
bu şekilde kayıt yapıyor
ben istiyorumki eğer office dosyası ise office ile, pdf ise acrobat ile açsın yani sql kaydedeyim açarken temp alsın ordan açsın
bu şekilde kayıt yapıyor
Kod: Tümünü seç
procedure TForm1.btn1Click(Sender: TObject);
var
fs: TFileStream;
BlobField: TBlobField;
begin
fs := TFileStream.Create(dlgOpenDOSYA_AC.FileName, fmOpenRead);
BlobField := QRY_1.FieldByName('DOSYA') AS TBlobField;
try
QRY_1.Insert;
BlobField.LoadFromStream(fs);
QRY_1.Post;
finally
fs.Free;
end;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
Arkadaşlar Dosya.doc yazan yere QRY_1ACIKLAMA.Text yazınca hata veriyor nasıl yapabilirim ?
Kod: Tümünü seç
procedure TForm1.btn3Click(Sender: TObject);
var
Dosya:TMemoryStream;
begin
Dosya:= Tmemorystream.Create;
TBlobField(QRY_1.FieldByName('DOSYA')).SaveToStream(Dosya);
Dosya.Position:=0;
Dosya.SaveToFile(QRY_1ACIKLAMA.Text);
ShellExecute(Handle, 'open','dosya.doc',nil,nil,SW_SHOWNORMAL);
Dosya.Free;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
işine yarayan arkadaş olabilir aşağıdaki gibi tüm dosya türlerini kaydedip açabiliyorum.
Kod: Tümünü seç
procedure TForm1.btn1Click(Sender: TObject);
var
fs: TFileStream;
BlobField: TBlobField;
begin
fs := TFileStream.Create(dlgOpenDOSYA_AC.FileName, fmOpenRead);
BlobField := QRY_1.FieldByName('DOSYA') AS TBlobField;
try
QRY_1.Insert;
BlobField.LoadFromStream(fs);
QRY_1ACIKLAMA.AsString:=ExtractFileName(dlgOpenDOSYA_AC.FileName);
QRY_1.Post;
finally
fs.Free;
end;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
dlgOpenDOSYA_AC.Execute;
if dlgOpenDOSYA_AC.FileName <> '' then begin
Caption:= dlgOpenDOSYA_AC.FileName;
end;
end;
procedure TForm1.btn3Click(Sender: TObject);
var
Dosya:TMemoryStream;
begin
Dosya:= Tmemorystream.Create;
TBlobField(QRY_1.FieldByName('DOSYA')).SaveToStream(Dosya);
Dosya.Position:=0;
Dosya.SaveToFile(QRY_1ACIKLAMA.Text);
//ShellExecute(Handle, 'open','dosya.doc',nil,nil,SW_SHOWNORMAL);
ShellExecute(handle, 'OPEN', pchar(QRY_1ACIKLAMA.AsString), nil, nil, sw_Show);
Dosya.Free;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
Atladığım bir konu,
dosyayı farklı nasıl kayıt yapabilirim ?
teşekkürler
dosyayı farklı nasıl kayıt yapabilirim ?
Kod: Tümünü seç
procedure TForm1.btn4Click(Sender: TObject);
begin if dlgSaveDOSYA_KAYDET.Execute then
begin
with dlgSaveDOSYA_KAYDET do
begin
FileName:=QRY_1DOSYA.Value;
if Execute then
QRY_1DOSYA.SaveToFile(FileName);
end;
end;
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
)
procedure TForm1.btn4Click(Sender: TObject);
begin
if dlgSaveDOSYA_KAYDET.Execute
then TBlobField( QRY_1.FieldByName('DOSYA')).SaveToFile(dlgSaveDOSYA_KAYDET.FIleName);
end;
procedure TForm1.btn4Click(Sender: TObject);
begin
if dlgSaveDOSYA_KAYDET.Execute
then TBlobField( QRY_1.FieldByName('DOSYA')).SaveToFile(dlgSaveDOSYA_KAYDET.FIleName);
end;
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
Re: herhangi bir dosya kayıt edip okutmak
Arkadaşlar aşağıdaki kod ile kayıt ediyorum fakat savedialogda dosya adı çıkmadığı için uzantıda kaydedemiyorum ?
savedialog filenamede adı çıkmalı nasıl yapabilirim ?
teşekkürler
savedialog filenamede adı çıkmalı nasıl yapabilirim ?
teşekkürler
Kod: Tümünü seç
procedure TForm1.btn5Click(Sender: TObject);
var
BlobStream: TStream;
FileStream: TStream;
begin
if QRY_1.Active and dlgSaveDOSYA_KAYDET.Execute then
begin
BlobStream := QRY_1.CreateBlobStream(QRY_1.FieldByName('DOSYA'), bmRead);
try
FileStream := TFileStream.Create(dlgSaveDOSYA_KAYDET.FileName, fmCreate);
dlgSaveDOSYA_KAYDET.FileName:=QRY_1DOSYA_ADI.Text;
try
FileStream.CopyFrom(BlobStream, BlobStream.Size);
finally
FileStream.Free;
end;
finally
BlobStream.Free;
end;
end;
end;