FireBird Embedded Server

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
theSinan02
Üye
Mesajlar: 28
Kayıt: 15 Eyl 2014 11:33

Re: FireBird Embedded Server

Mesaj gönderen theSinan02 » 11 Kas 2017 10:05

S.a ben baya geriden geliyorum kusura bakmayın
C++ builder xe10.1 berlin de datasnap kullanarak firebird veri tabanına baglanip klasik veri ekle silme işlemleri yapıyorum
Ancak uygulamam tek bilgisayar calistigindan bazenden uygulamin çalıştığı bilgisayarda farklı version firebird yüklü olabiliyor
Dolayısıyla bizim uygulamayı çalıştırabilmek için firebird version değişikligi yapmamız gerekiyor bu cok sıkıntı
Firebird embedded kullanmak sorunumu çözecek
Ancak embedded bir türlü ayarliyamadim
Firebird 2.5.7 embedded versionu indirdim
Uygulamanın çalıştığı dizine attım
fbembed.dll gds32.dll yaptım olmadı
Bazı forumlarda fbclient.dll yapin demiş yaptım yine çalışmadı

Indirdigim version 32 bit ancak test pc de Windows 10 64 bit kurulu kafayı yedirt ti

64 bit mi olmasi gerek yoksa firedac ta firebird embedded çalışmıyor mu
Ben nerde yanlış yapıyorum

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2081
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: FireBird Embedded Server

Mesaj gönderen freeman35 » 12 Kas 2017 10:28

Firebird 3x i kullan bence. yakında 4 çıkacak ken eski sürüm kullanmak mantıklı değil, özellikle yeni bir proje için. DB backup-restore ile upgrade edilir.
Aldığın hata ne? sadece " çalışmıyor! " lafına cevap ancak hak tâlanın hikmeti, sual olunmaz olur :)
Kurduğun sistem ne? servis olarak çalışan FB var mı? path ne? firedac demolarını incele, nasıl bağlanıyorsun? parametrelerin ne? vs vs milyon tane soru...
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 !!!

theSinan02
Üye
Mesajlar: 28
Kayıt: 15 Eyl 2014 11:33

Re: FireBird Embedded Server

Mesaj gönderen theSinan02 » 16 Kas 2017 01:51

s.a hocam
Test Yaptığım Sistem Windows 10 pro 64 bit
Projem Yedekleme Sistemi
MSSQL ve FireBird VeriTabanlarını Yedeklemek için Yazdım

FDConnection ile Baglantı Sağlıyorum
Uygulamada iki Adet FDConnection var bir ile
Yedek Alırken Yedeklenecek VeriTabanları Yedekleme Zamanlarını Yedekleme Sonucları Bir VeriTabanında Tutuyorum
diğer ile VeriTabanlarını Yedekliyorum (MSSQL )
MSSQL veya Firebird Bağlanabiliyor
bu Senaryoya Göre
Programım Çalıştığı Bilgilsayarda Hem Firebird Kurulu olabilir
Hemde Kurulu Olmaya Biliyor
Kurulu Olmayan bilgisayarları düşünerekten
Firebird Veri Tabanı gömülü kullanmak daha mantıklı geldi
Firekurulu olmayan bilgisayarda programını çalıştırdığımda
[FireDAC][Phys][FB]unavailable database
Hatası veriyordu Sebebi Firebird Emmbeded 64 Bit indirmemden kaynaklanıyormuş

32 Bir Versiyonun indirip Programımın Çalıştığı Dizine Attım
fbembed.dll yi fbclient.dll olarak değiştirdim çalıştı
artık bağlantı var ancak Firebird Embeded Versiyonunda VeriTabanı Nasıl Oluşturabilirim
Normal versiyonda
bin\isql.exe
bin klasöründeki isql.exe bağlanıp parametre gönderip veritabanı oluşturabiliyordum
ancak Firebird Embedeb bin dizini yok dizin içindekilerde yok

selocanbaba
Üye
Mesajlar: 14
Kayıt: 13 Haz 2018 02:10

Resim görüntüleme sorunu

Mesaj gönderen selocanbaba » 16 Eyl 2018 10:37

Merhabalar arkadaşlar,
Bilmiyorum konunun yeri burası mı ama benim bir sorunum var,
Kolay anlaşılması adına örnekli anlatacağım projemi;

firebird kullandığım bir veritabanım var ,
Tabloda Personel adı, soyadı ve resmi olan alanlar var,
resim alanına klasörün yolunu giriyorum (blob alan değil resim boyutları 6-7 mb olduğu ve çok sayıda olduğu için verirabanına sadece yolu kaydediyorum) , client pc ile unidac kullanarak bağlanıyorum adı , soyadı kısmını çekebiliyorum ama resmi görüntüleyemiyorum , ne yapmam gerekli acaba yardımcı olabilirmisiniz

mkysoft
Kıdemli Üye
Mesajlar: 2911
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: FireBird Embedded Server

Mesaj gönderen mkysoft » 17 Eyl 2018 08:18

Resimleri nasıl kaydediyorsunz? Eğer client pc'nin sürücüsüne kaydediyorsanız sadece orada erişilebilir. Sadece resimlerin olduğu bir db-tablo oluşturarak oraya kaydedebilirsiniz. Diğer seçenek ise sunucunun klasör paylaşımını açarak ağ yolu üzerinden resimlere erişmek olabilir. Ancak çıkaracağı sorunlarla uğraşmak yerine db'ye kaydedebilirsiniz. Dosya okuyup kaydedebilen bir fonksiyon yazarak (plugin) veri tabanına kaydedermiş gibi sunucunun diskine kaydedebilirsiniz.

selocanbaba
Üye
Mesajlar: 14
Kayıt: 13 Haz 2018 02:10

Re: FireBird Embedded Server

Mesaj gönderen selocanbaba » 17 Eyl 2018 10:55

mkysoft yazdı:
17 Eyl 2018 08:18
Resimleri nasıl kaydediyorsunz? Eğer client pc'nin sürücüsüne kaydediyorsanız sadece orada erişilebilir. Sadece resimlerin olduğu bir db-tablo oluşturarak oraya kaydedebilirsiniz. Diğer seçenek ise sunucunun klasör paylaşımını açarak ağ yolu üzerinden resimlere erişmek olabilir. Ancak çıkaracağı sorunlarla uğraşmak yerine db'ye kaydedebilirsiniz. Dosya okuyup kaydedebilen bir fonksiyon yazarak (plugin) veri tabanına kaydedermiş gibi sunucunun diskine kaydedebilirsiniz.
resimlerimiz server üzerinde kayıtlı,
denediğimiz yöntemlerde aşağıdaki gibi;
1) verileri Veritabanına kaydettik resimleri client lar direk ordan ulaşabiliyor, fakat her dosya 6-7mb boyutunda ayrıca günlük en az 1000 kayıt sözkonusu onun için veritabanı şişti, ayrıca dosya boyutu büyük olmasından dolayı VT'den çekerken en az (client tarafında) 5-6 saniye gecikme yaşadık,
vazgeçtik :),

2) wamp server kullandık, "htpp://ip-adres/image.jpg" şeklinde VT lerde yol kaydettik, böylelike VT şişmeden görüntüleri çekebildik, gecikmelerde 3 saniyelere düştü, fakat ağ kasmalarında 5-6 saniyeler çıktı,
vazgeçtik :),

3) klasör paylaşımı kullandık, server'da klasörü paylaşıma açtık, VT yol kaydettik, böylelikle yine VT de yer kaplamamış oldu, hızda güzeldi, 2 saniyelere düştü, fakat web uygulamasınada ihtiyacımız olduğu için, UNIGUI ile web uygulamasında paylaşılan klasöre ulaşmamadık,
vazgeçtik :),

yani özetle bizim ihtiyacımız, aynı PHP sitelerde olduğu gibi clientlar serverdaki dosyalara nasıl ulaşıyorsa bizde öyle ulaşabilmek istiyoruz,
datasnap diye bir şey duydum araştırdım ama ihtiyacıma yönelik bir şey bulamadım,

siz;
"Dosya okuyup kaydedebilen bir fonksiyon yazarak (plugin) veri tabanına kaydedermiş gibi sunucunun diskine kaydedebilirsiniz."

diye yazmışssınz bunu nasıl yapabilirz, var mı bir örnek ?


umarım derdimizi anlatabilmişizdir,

Bu arada kullandığımız yöntemlere ihtityacı olan arkadaşlar varsa yardımcı olabiliriz.

mkysoft
Kıdemli Üye
Mesajlar: 2911
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: FireBird Embedded Server

Mesaj gönderen mkysoft » 17 Eyl 2018 11:53

UDF fonksiyon diye geçiyor, örnek bazı şeylere rast geldim (https://firebirdsql.org/manual/nullguide-udfs.html) ancak sizin performans sorununuzu çözmeyecek. Dosya boyutlarınız büyük. Dosya boyutu 5-6 mb diyorsunuz, kullanıcı bu resmin tamamına ihtiyaç duymuyordur sanırım. Ön izleme için küçük resimler oluşturabilirsiniz. İndirmek istesere orjinal boyutuna erişmesini sağlayabilirsiniz.
php ile ile yapmış olmanız güzel ancak önbelleklenmesini (aynı resmin sürekli açıldığını varsayarsak) sağlarsanız trafiği azaltabilirsiniz. Küçük boyutlu resim olayını da yine php'de çözebilirsiniz. unigui içinde direk url'den resim açma desteği var mı emin değilim, ancak extjs'de yapılabiliyor. en azından iframe desteği de olabilir belki, araştırmak lazım.

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2081
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: FireBird Embedded Server

Mesaj gönderen freeman35 » 17 Eyl 2018 02:14

Bencede mkysoft un dediklerine katılıyorum. Server muhtemelen windows dur, buna apche server kurup, basit bir php sayfa yapın. php kodlarında, resmi veriğiniz boyutlara küçülten script ler var. orjinalresmi kastetmiyorum, verdiğiniz resmi, verdiğiniz boyulara indiriyor, buda network trefiğini azaltıyor, bu performans için iyi bir yöntem, gerektiğinde bir tuş vs ile orjinal boyut da alınabilir. Bu php yi kullanmak içinde delphi forma bir webbrowser eklemek yeterli, arka planda url ye gereken resim bilgisi vereceksiniz.
unigui içinde yetki konusunu çözmeniz gerekir. resimlerin olduğu klasör e yetki verilmesi gerekir, buda hangi tip unigui application kullandığınıza göre kullanıcı bilgisi değişir. ISAPI, server, application. Gerçi application mantıklı değil. en basit deneme için, bir kalsör açıp, buna everyone verip deneyebilirsiniz. bu size sorunun yetkilendirmeden olup olmadığını kanıtlayabilir. uniimage url ile çalışıyor, ama buna loadfromfile ile path vermekte mümkün yanılmıyorsam. Farşad yardımcı olacaktır.
Kolay gele
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 !!!

selocanbaba
Üye
Mesajlar: 14
Kayıt: 13 Haz 2018 02:10

Re: FireBird Embedded Server

Mesaj gönderen selocanbaba » 17 Eyl 2018 10:33

Imageen componentini kullanıyorum, direkt URL (Imageen.loadfromURL('http:/192.168.1.100/image.jpg') şeklinde ) den, file 'dan yada DB den resimleri çekebiliyor, bunun için bir php ye vs..ye gerek duymuyorum,

bu arada server tarafım windows, 2 farklı resim var zaten önizleme için 500k-600k lık, ana resim için 6-7MB şeklinde,
fakat projemizde 4 adet resim olduğu için ortalama 600k x 4 =2.4MB yapıyor yine,

Datasnap denilen bir teknolojine denk geldim, bu datasnap denilen teknoloji nedir, burda benim işime yarar mı ,
yoksa hiç uğraşmayıp bulduğum 3 yöntem üzerinden en iyi isiyle gitmeye devam mı edeyim,

bu arada UNIGUI üzerinden yaptığımız web uygulamsı ile php mantığında olduğu gibi client uygulaması yapabiliyoruz,
ama uniqui sadece webde kullanıyoruz, çünkü ihtiyacım olan componentleri UNIGUI formunda kullanamadığım için her halükadarda masaüstü uygulamasına ihtiyacımız var.

artık gecikmeyi kabullenelim ama client tarafındaki kullanıcıya en azından bekleyeceğine dair indicator yada progress gibi bir işaretle gösterelim dedik;
fakat fakat resim aç butonunu tıkladığım vakit form donuyor, indicator yada progresste başlamıyor, taki resim açılınca indicator yada progress çalışıyor, ama tabi dolayısıyla işimize yaramamış oluyor,thread kullanarak yapalım dedik, UNIGUI içinde threadTimer var onunla birşeyler yapalım dedik,
fakat ondada aynı donmalar meydana geldi,
anlayacağınız tıkandık kaldık arkadaşlar ,
öneri ve yardımlarınızı bekliyoruz.

mkysoft
Kıdemli Üye
Mesajlar: 2911
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: FireBird Embedded Server

Mesaj gönderen mkysoft » 18 Eyl 2018 07:57

Aşağıdaki ifadenize istinaden resimleri her seferinde sunucudan uygulama içine yüklediğinizi anlıyorum.
selocanbaba yazdı:
17 Eyl 2018 10:33
file 'dan yada DB den resimleri çekebiliyor, bunun için bir php ye vs..ye gerek duymuyorum,
Kullandığınız componentin kullanıcı ekranında göründükten sonra http isteği ile resimleri sunucudan almasını sağlamalısınız unigui için. Masaüstü uygulamanızın yavaşlamaması için farklı teknikler uygulanabilir. Yine burada cache mekanizması kullanabilirsiniz. Resimlerin md5/sha hashlerini kontrol ederek eğer güncelse tmp klasöründeki versiyonlarını kullanmak gibi. Yine image nesnelerinin yüklenme işini ayrı bir thread içinde yapabilirsiniz. Yükleme boyunca nesnenin visible özelliğini kapatırsanız form render etmeye çalışmayacaktır. Bu amaçla kendi üst üste duran iki image componenti kullanabilirsiniz. Birinde yükleniyor yazar, diğeri gerçeği olur. gerçeğinn yüklenmesi tamamlandığını geçici olananın visible özelliğini kapatabilirsiniz. 500-600k önizleme resmi için bana fazla geldi, sıkıştırma algoritmanızı gözden geçirin bence, arka plan resmi değilse tabi.

selocanbaba
Üye
Mesajlar: 14
Kayıt: 13 Haz 2018 02:10

Re: FireBird Embedded Server

Mesaj gönderen selocanbaba » 18 Eyl 2018 09:51

Kullandığınız componentin kullanıcı ekranında göründükten sonra http isteği ile resimleri sunucudan almasını sağlamalısınız unigui için. Masaüstü uygulamanızın yavaşlamaması için farklı teknikler uygulanabilir. Yine burada cache mekanizması kullanabilirsiniz. Resimlerin md5/sha hashlerini kontrol ederek eğer güncelse tmp klasöründeki versiyonlarını kullanmak gibi. Yine image nesnelerinin yüklenme işini ayrı bir thread içinde yapabilirsiniz. Yükleme boyunca nesnenin visible özelliğini kapatırsanız form render etmeye çalışmayacaktır. Bu amaçla kendi üst üste duran iki image componenti kullanabilirsiniz. Birinde yükleniyor yazar, diğeri gerçeği olur. gerçeğinn yüklenmesi tamamlandığını geçici olananın visible özelliğini kapatabilirsiniz. 500-600k önizleme resmi için bana fazla geldi, sıkıştırma algoritmanızı gözden geçirin bence, arka plan resmi değilse tabi.
[/quote]
mkysoft yazdı:
18 Eyl 2018 07:57
Kullandığınız componentin kullanıcı ekranında göründükten sonra http isteği ile resimleri sunucudan almasını sağlamalısınız unigui için.
unigui formuna bu componenti koyduğumda kullanamazsınız hatası veriyor, UNIGUI kendi componentleri haricinde kullandırmıyor,
mkysoft yazdı:
18 Eyl 2018 07:57
Masaüstü uygulamanızın yavaşlamaması için farklı teknikler uygulanabilir. Yine burada cache mekanizması kullanabilirsiniz. Resimlerin md5/sha hashlerini kontrol ederek eğer güncelse tmp klasöründeki versiyonlarını kullanmak gibi.
şuan önemli olan zaten masaüstü uygulamam, tüm yavaşlıklar vs.. zaten masaüstü uygulamamda oluyor, burda cache kullanamam diye düşünüyorum, çünkü her açılan resim serverdan yeni talepte bulunulan resim olduğu için dolayısla bir cache söz konusu olmuyor galiba.

visible ve arka plandaki image loading... olayını deneyeceğim,

500-600k dosyada orjinal dosya, yani ben herhangi bir işlem yapmadım,

resimleri sunucu tarafında sıkıştırıp, client tarafında şıkıştırmayı açıp gösterme gibi bir imkan var mı acaba, hız kazanabilmek adına ?

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2081
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: FireBird Embedded Server

Mesaj gönderen freeman35 » 18 Eyl 2018 10:29

Konuyu devam ettireceksen, yeni bir başlık açıp oadan devam et, konu başlığı "FireBird Embedded Server", konuşulan alakasız bir başlık.
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