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: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

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

Mesaj gönderen sunye »

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 09: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 »

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: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen sunye »

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 03:10
Konum: İstanbul & Gebze Karışık

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen conari »

gettext
Diye arattırın.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen freeman35 »

_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: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

Re: Runtime Calculated alan tanımlaması

Mesaj gönderen sunye »

@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 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

Şö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