Runtime Calculated alan tanımlaması (çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sunye
Üye
Mesajlar: 101
Kayıt: 24 Ağu 2004 03:49
Konum: izmir

Runtime Calculated alan tanımlaması (çözüldü)

Mesaj gönderen sunye » 24 Eki 2011 08:40

Merhaba Arkadaşlar, önce kullanmış olduğum bileşenleri yazayım, sonra soruma geçeyim.

Bileşenler

DataModül
- ADOConnection
- ADOQuery
- DataSource

Program içerisinde ADOConnection ile farklı DB'lere bağlantı yapıyorum, aynı şey ADOQuery için de geçerli. ADOQuery için tasarım aşamasında calculated alan oluşturamıyorum çünkü parametreler (DB adı, fieldlar belli değil), bunun için calculated alanı runtime esnasında oluşturmam gerek ama bu konu hakkında çözüm bulamadım. Daha önceden böyle bir çalışma yapan var mı?
En son sunye tarafından 25 Eki 2011 08:08 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bildiğim tek şey, hiç bir şey bilmediğim.

Kullanıcı avatarı
doctorfunks
Üye
Mesajlar: 105
Kayıt: 26 Oca 2005 10:37
Konum: İstanbul

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen doctorfunks » 24 Eki 2011 09:34

slm,
elimde şuanda kod yok ama fikir olması açısından yazayım;
AdoQuery.Oncalculation methodu ile ilgili kaç farklı alternatif tablo ve calculate alan seçeniğiniz varsa bunların MyCalculate1-2-3 sabit yapın ,zaten alanlar sabit olduğunndan bir şekilde if yada böle bi yönteme başvuracaksınız,
daha sonra connection ve tablo bağlantınız nereye ise ona göre o anda adoquery oncalculation eventını hazırladığınız MyCalculate methoduna yönlendirin, (bu methodun içindede query'ye ilgili calc alan ismi tipini eklersiniz)...

Kullanıcı avatarı
sunye
Üye
Mesajlar: 101
Kayıt: 24 Ağu 2004 03:49
Konum: izmir

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen sunye » 24 Eki 2011 09:49

Kusura bakma hocam, sabahtan beri aynı problem ile uğraştığımdan beynim almıyor artık. Belki dediğini yarın okursam anlarım ama şu an için bana bir şey ifade etmedi. :cry:


Sorunum kısaca şu aslında;

OnayDegeri diye alanım var Değer : 6 ise onaylanmış 7 ise onaylanmamış yazacağım. cxGrid kullanıyorum (dbgrid'e de dönebilirim). CXGrid'e dışarıdan doğrudan müdahale edemediğim için sorunu calculated alana taşıyorum...
Bildiğim tek şey, hiç bir şey bilmediğim.

Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 02:10
Konum: İstanbul & Gebze Karışık

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen conari » 25 Eki 2011 03:55

gettext
Diye arattırın.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim

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

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen freeman35 » 25 Eki 2011 04:41

_http://stackoverflow.com/questions/2523697/adding-a-calculated-field-to-a-query-at-run-time

arada yüce google a sormakta fayda var
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 !!!

Kullanıcı avatarı
sunye
Üye
Mesajlar: 101
Kayıt: 24 Ağu 2004 03:49
Konum: izmir

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen sunye » 25 Eki 2011 08:06

@freeman35,

Dediğin sayfayı, google amcadan bende bulmuştum ama daha pratik bir yöntem var mıdır diye sordum, her calculated alan için kod fazlalığı oluyor,

@conari,

Gettext olayı için yine tasarım zamanında calculated alan oluşturman gerekiyor diye hatırlıyorum, tam emin değilim.

Çözüm :

Select Field1, Field2, Field3, (Case Field4 when 6 then 'Onaylanmış' when 7 then 'Onaylanmamış' end) from TBLSipaMas

SQL query ile sorunumu çözmüş oldum, yardımlarınız için teşekkür ederim.
Bildiğim tek şey, hiç bir şey bilmediğim.

Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 02:10
Konum: İstanbul & Gebze Karışık

Re: Runtime Calculated alan tanımlaması (çözüldü)

Mesaj gönderen conari » 26 Eki 2011 07:31

Şöyle Field4 ün gettext eventine;

Kod: Tümünü seç

if sender.value<>null then
case sender.value of
6:text:='Onaylanmış';
7:text:='Onaylanmamış';
end;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim

Cevapla