calculated fieldla hesaplanan değerler sql de görünmüyor

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

calculated fieldla hesaplanan değerler sql de görünmüyor

Mesaj gönderen eren2000 »

Calculated field ile hesaplattığım değerler table a yazmadığı için tanımladığım sql buradaki sonuçları değil tabloda yazılı olan sonuçları bana getiriyor. Ama bana calculated daki değerler lazım. Sorunu nasıl çözebilirim. Mutlaka sorgu ile işlem yapmam lazım.
Yani bir bakiye değeri var. Table a yazma işleminde sorun çıktığı için bu değeri calculated field olarak tanımlayıp hesaplattırdım.
Bunu rapora gönderirken bakiye>0 koşuluyla tabledan okutmak istiyorum.
Program çok kullanıcılı olduğu için ve sorun olacağı için filter tanımlamadım. SQL ile yaptım. Ama o da bana tableda yazılı olan sonuçları getirdi. Ne yapmam lazım. Teşekkürler.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba..

Örnek vererek açıklasan daha güzel olur..Nasıl bir veri nasıl bir sonuç gibi.
Şu an için aklıma bir şey gelmiyor. :roll: Belki bildiğimiz bir şeydir.. :D
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

örneğe gerek var mı?

Mesaj gönderen eren2000 »

Sanırım herşey yeterince açık.
İsterseniz sizde kendi kullandığınız vt ve sistemlerde deneyin. Table daki sahalarda yazılı olan başka değerle olsun.
calculated olarak hesaplanan değerler farklı olsun. Bunu rapora bir sql ile aktarın. Ben diğer sistemlerde denemedim.
Ama böyle bir hata var. Belki de calculated field olan sahanın tamamen boş olması gerekir. Benim uygulamam yanlıştır. Mantıken o saha calculated olduğu için table da boş olması lazım. Ama sql sorgusu burayı okur mu?
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Calcuet alanlarıyla ilgili yaptığınız işlemler sonuç döndüren işlemlerdir ve sizinde belirttiğiniz gibi vt ye yazılmadığı için Sql ile yapmış olduğunuz sorgularda bu alanları ilave edemezsiniz.

Çözüm yolu olarak söyle birşey önerebilirim.
1-Eğer calcuet (hesaplama) alanıyla yaptığınız işlemler basitse veya sizin sql bilginiz iyiyse bu hesaplama işlemlerini SQL ile yaptırabilrsiniz. sonuç döndürmek için yine sql kullanacağınız için bu sql cümlesine o koduda ekleyerek sonuca ulaşırsınız.

Kod: Tümünü seç

Örn
SELECT Miktar,Fiyat,Miktar*Fiyat as Sonuc ,Fiyat*Miktar*5 as 'Heaplama' FROM table_ismi
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

önerinize teşekkürler

Mesaj gönderen eren2000 »

Öneriniz için teşekkürler. Yaptırdığım hesaplama biraz karmaşık ve 3-4 tabledan sonuç döndürüyor. Bu yüzden sql ile halletmedim. Aslında biraz kassam herhalde olur. Hızlı da olur diye düşünüyorum. Calculated field oldukça hız kazandırdı. Calculated fieldı sql de gösterebilirsem sorun kendiliğinden hallolur. Şimdi bir şey daha deneyeceğim. Umarım olur. Böyle bir işlem deneyen olmadımı acaba. Ya da hiç böyle sorunla karşılaşmadılarsa benim hata yaptığım yer neresi. Mantık hatası yapıyorsam lütfen değişik yöntemler de söyleyebilirsiniz. Bütün önerileri denemeyeceğim.
Teşekkürler...
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Daha önce benim başıma senin belirtiğin şekilde bir sorun gelmişti ve çok karmaşık pascal komutlarıyla calcuet işlemini yaptıyordum ama bana o sonuçlar sql lazımdı.

Ben o projeyi yarım bıraktım. Nedeni ise delphi calcuet ile işe devam ettim ve program bir raporlama aracıydı kilitleniyordu. ve sonuç olarak vazgeçim o peojede halen rafta :(

Ama bu olaydan sonra inat ettim Sql iyi derecede öğrenmeye gayret ettim şimdi biraz daha sağlıklı düşünebiliyorum.

Size tavsiyemde şu olur.
+-Calcuet olayı aslında performansı önemli ölçüde etkiliyor siz çok hızlı gibi göresenizde calcuet sadece dbgridde sizin gördüğünüz alanları hesaplıyor. Yani bu şu demöek oluyor siz calcuet ile işlem yaptığınız bir listeyi yazdırmaya kalktığınızda liste while döngüsüyle yazıcıya veya ekrana atılacaktır ve sizde hüsrana uğramış olacaksınız şayet binlerce veya onbinlerce kaydınız varsa.

Saygılarımla
Başarılı olmanız dileğiyle...
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

sağolun

Mesaj gönderen eren2000 »

Dediğinize kesinlikle katılıyorum. Ama bu hesaplanan sahanın sürekli değiştiğini söylersem sanırım siz de bana katılırsınız. Bu sahanın içinde veri tutmasına gerek yok.
VT yi şişirmeye gerek yok. Dolayısıyla calculated olması doğal. Ama listeyi sql den çektiremiyorum.
Buna bir çözüm.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

hocam hangi veritabanını kullanıyorsun.
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

Mesaj gönderen eren2000 »

mysql kullanıyorum. mysql 4 delphi6 winzeos bağlantı comp. bunarla bir ilgisi olduğunu sanmıyorum. Mantıksal bazaı eksiklikler var. Ama saplanıp kaldım. Farklı düşünemiyorum.
Farklı bir gözle bakacak yardımcı olacak arkadaşlara yapmak istediklerimi detaylı anlatacağım.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

ben eğerki firebird kullanıyorsan firebirdde computud by fieldlar var bir nevi calculeted field.oradan oluştururdun fieldlarını.benzzer bir kullanımda sql server da var. bu şekilde sql le çağırabilirdin istediğin fieldi.
diğer türlü mümkanıtı yok zaten.çünkü veritabanıyla ilgisi yok o fieldların.
kolay gelsin.
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

ne tavsiye edersiniz

Mesaj gönderen eren2000 »

Sayın adminlerim ve değerli arkadaşlarım.
Çok resmi bir giriş oldu :)
Neyse asıl sorun şu vt olarak firebird mü tavsiye ediyorsunuz.
Bu tür problemler orda yok mu
eğer yok diyorsanız sorun değil
projeyi firebird e aktarırım.
Zaten sağlam işlevsel, sorunsuz(az sorunlu) bir vt ihtiyacı duyuyorum.
Tavsiyelerinizi bekliyorum.
Teşekkürler.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

bir başka alternatifde sql çekerken sql içinde hesabını yaparsım tabi müsaitse tablo yapıları.

Kod: Tümünü seç

 
Select Para=2*faiz,AdSoyad From Tablo 
gibi.
kolay gelsin.
Cevapla