Firedac FDMemTable ile SQL komutları çalıştırmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen habikus »

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?
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: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen sabanakman »

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. - .
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen habikus »

Ö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?
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen warder »

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...
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: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen sabanakman »

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. - .
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen brs »

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...
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen habikus »

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?
habikus
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2011 04:23

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen habikus »

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.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Firedac FDMemTable ile SQL komutları çalıştırmak

Mesaj gönderen esistem »

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.
Cevapla