.exe içine gömülü SQLite veritabanını okuyabilme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

.exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen sabanakman »

İyi günler. Bazı şablon kayıtları (meslek kodları, vergi daireleri listesi v.s. ...) güncellemek için .exe içinde gömülü bilgileri kullanma yolunu seçtim fakat bu kayıt türlerinde zamanla artış oldu. Eğer SQLite ile mümkünse, mevcut yöntem yerine, tek veritabanını .exe ye gömüp, onu çalışma anında okumak isterim. SQLite ile bu mümkün müdür, mümkün ise nasıl olabilir? Farklı yol önerilerine de açığım. Mevcut sistemde MemTable türünden tablolarla çalışmaktayımdır :D . İyi çalışmalar, kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: .exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen ertank »

Merhaba,

Yapmak istediğiniz sadece SQLite ile değil herhangi bir "embedded database" ile mümkündür. Hatta alternatif yöntem olarak bilgileri "insert into gecici_tablo values()" gibi ifadeler şeklinde bir text dosya içine kaydedip daha yetenekli bir database sisteminin "temporary table" özelliğini kullanarak ilgili verileri database ortamında kullanabilirsiniz.

Basitçe yapmanız gereken gerekli bilgileri içeren dosyayı "resource file" haline çevirip proje resource dosyaları arasına dahil etmek ve çalışma zamanında bu bilgileri okumak olacaktır.

Aşağıdaki iki link üzerinden nasıl resource file oluşturabileceğinizi ve EXE içindeki resource file nasıl okunur öğrenmeniz mümkün. Özetle;
1- SQLite database dosyasını içinde gerekli kayıtlar olduğu halde hazırlayın.
2- Örnekleri kullanarak SQLite database dosyasını "resource file" haline getirin.
3- Resource file projeniz içine dahil edilsin. Böylece derlenmiş EXE içine kaydedilecektir.
4- Çalışma zamanında EXE içindeki ilgili resource dosyanızı okuyup diske kaydedin. İşiniz bittiği zaman disk üzerinden silin.

İlgili linkler:
Resource file hazırlama: http://delphidabbler.com/articles?article=2
Resource file okuma: http://delphidabbler.com/articles?article=3

NOT: İkinci örnekte okunan bilgiyi TResourceStream.SaveToFile() prosedürünü kullanarak diske kaydetmeniz ve daha sonra tercih ettiğiniz database bileşenleri ile kullanmanız gerekir.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: .exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen freeman35 »

exe içine gömmek bence mantıklı değil, 1kb lık değişiklik için 20-30mb lık exe indirmek taşımak mantıksız. exe kendi sitenden sadece scriptleri kontrol edip indirmesi daha mantıklı. yada bu scriptleri exe nin klasörüne kopyalamak ve ordan yaptırtmak daha mantıklı. sqlite ın bile dll i 1,5mb dan fazla :)
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 !!!
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: .exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen pasa_yasar »

Exe bozulursa nasıl kurtaracaksınız veritabanını. Bunlarda sorun. Gömülü olarak kalsın kimse incelesin istemiyor iseniz şifrelersiniz.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: .exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen sabanakman »

İşin aslı bu işlem için türlü türlü yöntemler seçilebilir. .exe içinde farklı tablolar ile kayıt tutmak da bunlardan birisi. Ayrıca bu bilgiler şifreli olmak zorunda değiller. Disk ile hiç muhatap olmadan, .exe içinde bir veritabanı bulundurup, bunları okuma meselesi aklıma bayağı takıldı. Çözüm ararsam bu seçenek dışında bir dolu çözüm var ama merak işte. Aklıma bu mesele takıldı :D .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: .exe içine gömülü SQLite veritabanını okuyabilme

Mesaj gönderen freeman35 »

merak iyidir :) ertank ın dediği resource a db yi olduğu gibi ekleyebilirsin.
delphi 7 yada öncesinde bende merak üzerine, dll içine 10,15 tane wallpaper gömüp, ikinci dll e de db nin ddl ini gömmüştüm. Resimler sırayla belli sürede dll den okunup, ana forma aktarılıyordu. Merak nelere kadir :D
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 !!!
Cevapla