Blob Alana Birden Fazla Resim Eklemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Blob Alana Birden Fazla Resim Eklemek

Mesaj gönderen ahmet_sinav »

İyi çalışmalar;
1 - Bir blob alana birden fazla resim nasıl ekleyebilirm?
2 - Eklediğim resimleri ayrı ayrı blob alandan nasıl okutup gösterebilirim?
3 - Gösterdiğim resimlerden herhangibirini nasıl silebilerim?
Delphi 7.0 MsSql;
Saygılar;
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

cevap kendi kendine epey bir eziyet ederek
:twisted:

Blob alana istediğin gibi veri girebilirsin dosya gibi düşün

pekii bir dosyaya uzunluğu değişken olan veriler nasıl girerim bu verileri tekrar nasıl okur ve nasıl silebilirim ?

1) kolay yol :?: :!: Eklenecek veri sayısını sabitlerim ve dosyanın başında bir dizi olarak tutarım

Resim adı Uzunluğu Başlangıç Pozisyonu
------------------------------------------------------
a.bmp 3000 0X23346
...
..

2) Bakınız Linked List yapısı

Veri adı
Uzunluğu
Veri
Bir sonraki veri pozisyonu
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

İyi çalışmalar;
Blob alanda girilen verilerin başlangıç ve bitiş pozisyonunu ayrı bir tabloda tutarak bu işin üstesinden gelebilirim zanlımca. Blob alandan okuma işlemi şu şekilde oluyor.

Kod: Tümünü seç

 TBlobField(blobfieldismi).SaveToStream(strm);
 strm.Seek(0,soFromBeginning);
Stream'den okuma yaparken seek fonksiyonu ile okumak istediğim dosyanın dosya başlangıcına gidebilirim. Fakat strem'e atılmış olan dosya başlangıç ve bitiş değerlerini nasıl alabilirim?
Saygılar;
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Mrb; ilişkili olan farklı bir tablo yaparsan daha zahmetsiz olur. Bu tabloda bir ID alanı birde Blob alan olacak. Artık organize etmek kolay. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

Selam;
Evet ilk düşündüğüm yöntem dediğiniz gibiydi. Fakat ilgili tabloya çok sık veri girişi yapılacağından bunu blob alanda tutmanın daha makul olacağını düşüdüm optimizasyon açısından. Strem'e atılmış olan dosya başlangıç ve bitiş değerlerini alma olayını aşabilirsem olay bitecek aslında ama henüz bulamadım.
Saygılar;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

O zaman kendinizi için bir Header tasarlayın... Şöyle ki,

Protokol şunun benzeri olsun.

1. byte kaç tane dosya olduğu "0..255" değer alabilir.
--------------
2,3,4,5. byte(lar) "4byte" uzunluğundadır "dWord" olarak ilk resim dosyasının uzunluk değeri
6. byte'dan itibaren resim dosyası
--------------
"6 + dWord" değeri yani "6 + ilk resim dosyası uzunluğu" sonraki offset (x) olsun.

x, x+1, x+2, x+3 byte(lar) "dWord" olarak sıradaki dosya uzunluğu olsun.
takip edenler ise diğer dosya.

bu işlem dosya sayısı kadar gitsin.

- Geri okurken de ters işlem yapar blok blok direkt okutursunuz...

// EKLEME //

@bk'nın önerisinin benzeri olmuş. Başlığın bir başını bir sonunu okursam böyle oluyor... :oops:
Resim
Resim ....Resim
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

@bk'nın önerisinin benzeri olmuş. Başlığın bir başını bir sonunu okursam böyle oluyor
:D soruyu soran arkadaş bile farkında değil
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

İyi çalışmalar
Çok sağolun arakadaşlar. Belirtiğiniz şekilde olayı hallettim.
Saygılar;
Cevapla