Firedac FDMemTable ile SQL komutları çalıştırmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Firedac FDMemTable ile SQL komutları çalıştırmak
fDQuery1 den FDMemTable1 e bir takım veriler aktardım. Sonrasında FDMemTable1 deki veriler üzerinde sorgu işlemi yapmak istiyorum. Fakat SQL komutlarını yazacak yerini bulamadım. Yoksa FDMemTable SQL i desteklemiyor mu?
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
FDMEMTable üzerinde sorgu yazılamaz ama basit düzeyde Filter özelliği ve/veya onFilterRecord olayı (Filtered=True atanarak) tanımlanabilir. Daha karmaşık sorgular çalıştırmanız gerekiyorsa SQLite veritabanı oluşturun onun üzerinde sorgular yazın.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
Öncelikle ilgilendiğiniz için teşekkür ederim. Veritabanı olarak Firebird kullanıyorum. Sorgularla ilgili problemim yok. Fakat raporlama amaçlı FDMemTable kullanmak istedim. Bunun sebebi de sonuçları normal fiziksel bir dosyaya kaydedince eğer ağda aynı anda iki kişi aynı dosya üzerinde raporlama yapıyorsa rapor sağlıklı çalışmıyor. Yani iki kullanıcı da aynı rapor dosyasına yazdığından iki rapor birbirine ekleniyor. FDMemTable ise sadece kullanılan bilgisayarda geçici dosya oluşturduğu için problem olmuyor. Fakat FDMemTable ile elde ettiğim sonuçları da sorgulatmak istiyorum. Yani FDMemTable yi fDQuery1 gibi kullanamaz mıyım?
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
SQLite :memory güzel teklif aslında.. firebird View de düşünülebilir.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
Kayıtları filtre edecekseniz yukarıdaki özellikleri kullanabilirsiniz ama gruplama - join tarzı ek sorgular düşünüyorsanız sorgu çalıştıran ücretli bileşenler olduğu gibi kullandığınız veri tabanına ya da SQLite - Access gibi yerel sisteminizde sorgular çalıştırabileceğiniz geçici veriler oluşturabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
Bildiğim kadarıyla SQLite tek kullanıcı ile bağlana bilirsiniz fakat birden fazla kullanıcı olacak ise kodlamayı ona göre yapınız!
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
Benim Firebird veritabanı ile yapılmış bir projem var zaten yani SQLite ye geçemem. Asıl gayem veritabanındaki kayıtları belli kriterlere göre süzerek toplayarak printere göndermek. Bu iş için Raporla isimli table oluşturmuştum. Fakat ağ ortamında birden fazla kişi aynı raporu almaya çalışınca bir kaç kişi raporla isimli tablo ya aynı anda bilgi girişi yapmış oluyor. Bu durumda sonuç hatalı çıkıyor. Fakat çözüm olarak sadece client ile sınırlı olan FDMemTable kullanmak istedim onun da SQL kısmı olmadığı için olmadı. Son olarak internetten temporary tables diye bir şey buldum. Program kapanınca otomatik olarak silinen bir table mevzusunu araştırıyorum. Sizce bu temporary tables bu iş için uygun mudur?
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
FDConnection1.ExecSQL('CREATE GLOBAL TEMPORARY TABLE deneme (adi varchar(25)) ON COMMIT PRESERVE ROWS');
Şimdi ise yukarıdaki kodla geçici tablo oluşturmak istiyorum fakat aşağıdaki hata mesajı geliyor.
Feature 'GLOBAL TEMPORARY TABLE' is not supported in ODS 10.1.
Şimdi ise yukarıdaki kodla geçici tablo oluşturmak istiyorum fakat aşağıdaki hata mesajı geliyor.
Feature 'GLOBAL TEMPORARY TABLE' is not supported in ODS 10.1.
Re: Firedac FDMemTable ile SQL komutları çalıştırmak
Selam,
Yazdığınız raporlama tablosunu ağ kullanıcılarınında kullanmasını sağlayabilirsiniz aslında, bunun için ağ üzerinde oturum açan kullanıcıya bir id verin, rapor tablosuna da userid diye bi alan tanımlayın, her user kendi idsinin verilerini çeksin. Ben öyle yapıyorum genelde.
Yazdığınız raporlama tablosunu ağ kullanıcılarınında kullanmasını sağlayabilirsiniz aslında, bunun için ağ üzerinde oturum açan kullanıcıya bir id verin, rapor tablosuna da userid diye bi alan tanımlayın, her user kendi idsinin verilerini çeksin. Ben öyle yapıyorum genelde.