cachedupdates true dataset en sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

cachedupdates true dataset en sorgulama

Mesaj gönderen greenegitim »

Merhaba,
cachedupdates true olan bir datasetin kayıtlarını sorgulama, sum alma gibi işlemlerini farklı bir dataset ile nasıl yapabilirim.
Mücadele güzelleştirir!
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen ertank »

Merhaba,

Sorunuzu şu şekilde anladım. Zaten sunucu üzerinden alınmış olan bilgileri tekrar sunucuda SQL sorgusu oluşturmaya gerek kalmadan basit toplama vb işlemlerini kod yazmadan SQL gibi bir yordam ile nasıl yapabilirim.

Eğer doğru anladı isem;
1- TkbmMemTable ve TkbmMemSQL kullanabilirsiniz. Kayıtları içeren TDataSet içindeki verileri TKbmMemTable içine kopyalayıp ardından TkbmMemSQL ile sorgulamalar yapabilirsiniz.
2- Denemedim ancak teoride direk olarak TDataSet ve TkbmMemSQL kullanmanız da mümkün olabilir.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen greenegitim »

Durum şöyleki bir faturahareket tablosu düşünün bu QRYHAREKET datasetinde ve bu dataset cached update true olduğu için
farklı bir datasete QRYHAREKET datasetinde ki tutar alanını nı sum ile toplatmak istiyorum bilgiler veritabanına henüz yazılmadığı memoryde olduğu için sorgu sonucu boş geliyor taki apply updates yapana kadar.
TKbmMemTable ve TkbmMemSQL ile deneyeceğim.
Mücadele güzelleştirir!
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen freeman35 »

veri tabanın ve kullandığın bileşenlerde önemli. cachedupdate e neden gerek var? transcation var zaten. Kullandığın bileşen read ve write transaction destekliyorsa, ortak transaction lara bağlarsan, commit etmesende birbirlerinin postlarını görür.
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ı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen greenegitim »

veritabanı firebird ağ trafiği, hız sorunu olduğu için kullanmak istedim cachedupdatei, birde yazdığım uygulama piyasadaki bir programa ek olarak hızlı satış modülü ana programın kendisinde bulunan modül yavaş çalışıyor çokfazla field var örnek var olan bir kayda gitip bir kaç değişiklik yapıp değişiklikleri iptal edemiyorsunuz gibi sıkıntıları mevcut bende en optimize şekilde çözmeye çalışıyorum.

Kod: Tümünü seç

kbmMemTable1.Close;
kbmMemTable1.EmptyTable;
kbmMemTable1.CreateTableAs(QryFaturaHareketi,[mtcpoStructure,mtcpoProperties]);
kbmMemTable1.Open;
kbmMemTable1.LoadFromDataSet(QryFaturaHareketi,[]);

kbmMemSQL1.Tables.Clear;
kbmMemSQL1.Tables.Add('FATURAHAREKETI',kbmMemTable1);
kbmMemSQL1.ExecSQL(SQLCUMLEM);
şeklinde sorunumu çözdüm.
Mücadele güzelleştirir!
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen freeman35 »

şu sıra herkese aynı tavsiyede bulunuyorum :) sanada onu salık vereyim. sqlite. sadece dll kpyalaman kullanman için yeterli. Burdada yani sqlite yada memtable la veritabanından ayrı bir yerde işlem yapmakata senkron işini çok iyi kotrol etmek gerek. memtable sqlite yerine veritabanına bir temp table da ekleyebilirsin, tabi burdada client sayıları ve onlarında aynı table a erişme ihtimali göz önünde bulundurmak gerek. sonrada işleri server da bir stored procedure ile esas table a işletebilirsin.
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ı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: cachedupdates true dataset en sorgulama

Mesaj gönderen greenegitim »

Açıkçası veritabanını ben dizayn etmediğim için tablo açmak sp yazmak istemiyorum yazayım dedim firebird 1.5 kullanılıyor bir kaç komut çalışmamıştı.
sqllite bir kaç yerde kullandım ufak tefek işler için gayet yeterli kbmMemTable çok hızlı çalışıyor o yüzden ilk tercihim oldu birde sql ile müdahale edebilmek var tabi sadece biraz düzensiz sql yazınca sevmiyor kbmMemSQL örnek select sum (miktar) as toplam from hareket çalışmıyor sum dan sonraki parantezle arasında boşluk olduğu için sum(miktar) yazınca sorun yok firebird iki koduda ne olursan ol gel :) diyerek kabul ediyor.
Mücadele güzelleştirir!
Cevapla