fotograftan kayıt çağırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

coderlord yazdı: Ben daha elle tutulur bir kanıt istiyorum. :) Bana tercih nedeninizi ve bunun mantığını açıklayabilir misiniz?
ben de resimlerin vt de tutulması taraftarı olmakla birlikte bazı durumlarda resimleri klasörde tutmakta tercih edilmelidir.

aklıma gelen bazı nedenleri buraya yazıyorum

1-gereksiz yere vt yi şişirmek istemiyorsak
2-vt üzerindeki işlemleri minimuma indirerek oluşabilecek olası riskleri önlemek istiyorsak -en azından içim rahat oluyor :) -
3- oracle express gibi 4 gb limitli bir vt kullanıyorsak

avantajlarını da sen belirtmişsin zaten. artık durum hangisine uygunsa ona göre hareket etmekte fayda var.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

bence de veritabanında bariz bir sorun çıkarıyorsa diğer zor yöntem seçilebilir, ama mesela 150*170 pixellik bir vesikalık resim kaydediyorsan bence vt da tutulabilir. benim personel programında 1000 civarında fotoğraf var, server da ya da programın işleyişinde hiç sorun yok. zira diğer yöntemde sorun ihtimali daha fazla.
ama tanesi 1 mb lık resimler saklayacaksındır, o zaman düşünülebilir. bir de kullandığınız veritabanı önemli, ms sql server çok rahat. microsoft yapmış yani. çalışıyor çocuklar. hepsi okumuş :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

1. Sebep :
@coderlord yazdı:Anladığım kadarıyla VT'nin tek bir dosya olması ve içine resim vs. girdiğinde boyutunun çok fazla artması çekinilen şeyler.
2. Sebep :
@coderlord yazdı:Diskte dosya olarak tuttuğunuzda aslında fiziksel olarak VT'de tutma ile aynı işi yapıyorsunuz. Ben arada pek bir fark göremiyorum. Ayrıca erişim, kontrol kolaylığı, yedekleme ve veri güvenliği bakımından VT'de tutmak ağır basacaktır.
- Aynı işi yapıyorsun çok geniş bir cümle. Bir tane veritabanımız var risk büyük. Veritabanı - Resimler ayrı tutuluyor. Risk bölünmüş. Kolay şeyler göğüs gerilmesi zor sonuçlar doğurabilir... :wink:

3. Sebep :
@coderlord yazdı:VT'nin boyutunun artması meselesi neden sorun oluşturuyor. Vt'nin page yapısı var. Veri hangi page'de ise o bölüm diskten okunur. Tıpkı küçük bir FAT gibi. Uygun VT parametre ve ayarlamalarıyla hız ve stabilite sorunlarının önüne geçmek mümkün.


- Bir veritabanı sunucusu; page yapısı vb. diğer yönleriyle etkin bi şekilde kullanmak üzere tasarlanmıştır. Bu doğru.

- Ama veritabanının bozulmasına sebep olan tek etken yönetici midir? Konumuz içerisine veritabanı güvenliği ve büyük boyutlu veritabanı dosyalarının, veritabanı sunucusu dışındaki etkilere karşı da sağlamlığıdır. Burada veritabanının tutulduğu sürücü de dahil. Windows neden aşırı veritabanı işlemi yaptığında "Veri sağlayıcısı ve ya diğer bir hizmet E_FAIL durumu verdi" veya İngilizcesi "Data provider or other service returned an E_Fail status" gibi bir hata neden döndürür. Veritabanı sunucusu dışındaki bu hatanın sorumlusu kimdir ?

- Zaten tercih proje sahibine bırakıldı hatırlarsak. Bunu nasıl yapılacağını anlatma görevi sana ait o zaman. Buyrun, dinliyoruz :lol:

4. Sebep :
@coderlord yazdı:Şöyle bir örnek vereyim. Bir content ve document manager uygulaması olan Sharepoint MS-SQL sunucu kullanır. Portal'e attığınız her dosya MS-SQL VT'de saklanır. Ayrı ayrı klasörlerde değil. Performans bakımından hiçbir sakıncasını göremedim şimdiye kadar.
- Şimdiye kadar görmedin belkide görmeyeceksin de. O zaman bu başlıktaki sorunun cevabı "aksini ıspatlayın değil" şu olurdu. "MS-SQL kullanırsan gönül rahatlığıyla veritabanına gömebilirsin." :lol: :lol:

5. Sebep :
@coderlord yazdı:Dizinlerde dosyaları tutmak programcıya fazladan kod, kontrol ve güvenlik gereksinimleri getirmekte. Bence herhangi bir üstünlüğü de bulunmamakta.
- Bence lafın önemli. Burada benzer bir terimi değerlendirme olarak ben kullandım. En altta bu durumu tekrar özetliyorum.
@coderlord yazdı:Ben daha elle tutulur bir kanıt istiyorum. Bana tercih nedeninizi ve bunun mantığını açıklayabilir misiniz?
- Aynen önce söylediğim gibi... :wink:
@mrmcop yazdı:- Umarım rantabilitesi hakkındaki kaygımı açıklayabilmişimdir. Tamamen proje üreten kişinin bilgi ve tercihine bağlı bir durum yani.
Resim
Resim ....Resim
kyilmaz46
Üye
Mesajlar: 16
Kayıt: 15 May 2005 12:09

Mesaj gönderen kyilmaz46 »

Arkadaşlar ilginize çok teşekkür ederim.
aldığım cevaplara göre arkadaşların birçoğunun fotografları veri tabanında tutmamın pek sakıncasının olmadığı kanısında olduğunu görüyorum. Zaten Veri tabanında ortalama 1000 kayıt tutulacak. Bu sebeple fotografları veri tabanında tutmaya karar verdim. DBISAM veri tabanı kullanıyorum. Veri tabanında fotografı tutacağım field ı Grapich olarak seçtim. Ancak şöyle bir sorunum var Jpeg fotografların veri tabanına kaydını yapamıyorum. Fotograf türünü Bmp seçtiğimde veritabanına fotografı kaydedebiliyorum. Yani Anlayacağınız Bmp de sorun yok ancak jpeg de sorun var. Bu işe bir türlü anlam veremedim. Acaba veri tabanımdamı sorun var diye MS SQL server veritabanını deneyeyim dedim. Ado Table ile Ms sql veri tabanına bağlantıyı yaptım. Fotografı tutacağım fieldın data tipini image seçtim. Ancak kaydettiğim zaman diğer field olan adi, soyadi, vs fieldların kaydını veri tabanına atıyor ve hiçbir hatada vermiyor. Ancak bmp ve jpeg uzantılı fotografı da veri tabanına gönderemiyorum. Kaydını tutmuyor. Nerede hata yaptığım konusunda bana yardımcı olabilirmisiniz ?
1 DBISAM veri tabanına jpeg türünde fotografları kaydedememin sebebi Nedir?
2- MS Sql server da adı, soyadı vs fieldların kaydı yapılırken resim dosyalarını niçin veri tabanına kaydını yapamıyorum. Nerede eksik yapıyorum. Acil yardımlarınızı bekliyorum.İlginize Teşekürler
Not: MS SQL li ilk defa kullanıyorum. Bu konuda acemiyim.

Ayrıca DBCtrlgrid den fotograftan kayıt çağırmayı yaptım türkcanfidan kardeş çok teşekür ederim.
En son kyilmaz46 tarafından 23 Kas 2005 04:00 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

sağol,

SQL server da fotoğraf için image veri tipini seç. jpeg te olsa bir resim yapıştırdığında kabul etmesi gerekiyor. birde resimleri aynı boyutta yapmaya özen göster. kullanıdığın dbImage componenti 150*170 olabilir. ama içine yapıştırdığın resim 1024*768 olursa pek sağlıklı olmaz.
Bir programda görmüştüm ama nasıl yapıldığını bilmiyorum. Delphi de yapılmış bir programın içinde fotoğrafı webcam den direkt alıyor ve db ye aktarıyor. Biraz zor geldi ama demekki yapılabiliyor.
kyilmaz46
Üye
Mesajlar: 16
Kayıt: 15 May 2005 12:09

Mesaj gönderen kyilmaz46 »

Arkadaşlar şu veri tabanına jpeg uzantılı fotografları kaydedemiyorum.
Bu amaçla 3 tane veri tabanı kullandım. Sorunun veritabanında olmadığı kanısına vardım. Dbisam, acsess ve ms sql veritabanlarında denedim. Bmp uzantılı dosyaları kaydedebiliyorum. jpg dosyaları kaydedemiyorum.Herhangi bir hatada vermiyor. DBimage ile veritabanı bağlantısını sağlıyorum. Dbimagenin datasource ve datafield bağlantısını yaptım 1 tane openpicturedialog koydum. ve Dbimagenin oncilick bölümüne
procedure TKayitforum.DBImage1Click(Sender: TObject);
begin
If OpenPictureDialog1.Execute Then
Begin
If Not (Dm.TAlbum.State in [DsInsert, DsEdit]) Then
Dm.TAlbum.Edit;
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
yazmak sureti ile fotografı dbimage çağrıyorum ve fotograf dbimage de görülüyor Kaydet Butonuna bastığımda Buton altında
Dm.TAlbum.Edit;
DM.TAlbum.Post;
yazılı bu butona bastığımda dbimagedeki jpeg uzantılı fotograf kayboluyor. veri tabanına bakıyorum. fotografı kaydetmemiş. Bmp de sorun yok daha önce fotografı çağırırken jpeg hatası veriyordu formun uses kısmına jpeg yazdım bu hata kesildi ancak jpegleri kaydedemiyorum.
nerede hata yapmış olabilirim Lütfen yardımcı olabilirmisiniz.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, DBCtrls, Mask, dxExEdtr, dxEdLib, dxDBELib,
dxCntner, dxEditor, dxDBEdtr, PDJ_XPSpB, PDJ_Basic, PDJ_Lab, dxTL,
dxDBCtrl, dxDBGrid, ExtCtrls, dxDBTLCl, dxGrClms, ExtDlgs, DB,
PDJ_MaEd, PDJ_ImEdi, PDJ_DBEdBs, cxControls, cxContainer, cxEdit,
cxImage, cxDBEdit,jpeg;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
dbimagenin picturene değilde vtdeki resim alanına resmi yükleyin.

Kod: Tümünü seç

 DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); 
değilde onun yerine

Kod: Tümünü seç

dm.talbumresim.loadfromfile(opd1.filename)
(gibi olması lazım).
yazın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla