Herkese Merhaba,
IBQuery nesnesine designtime da SQLini yazıp örnek: "Select * from Xtablosu" sonra active etmeden üzerinde çift tıklayıp istediğimiz field ları ekleyebiliyoruz ancak benim sorunum bu işlemi runtime da yaptırmak,
yani program içinde bu nesnenin SQL sorgusu değişiyor ve bu değişime göre fieldları da eklemem gerekiyor.
Bu arada bunu istememin nedeni normalinde integer olan bir fielddi duruma göre calculated field ekleyerek bunu kullanıcıya farklı bir değer olarak vermek. normalinde her tablo için ayrı bir query nesnesi kullansam olacak ama kullanıcı kendi oluşturacağı bir raporu alacak ve aynı kodları her bir query için yazmak pek mantıklı gelmiyor.
Yardımcı olabileceklerin mesajlarını bekliyorum şimdiden herkese teşekkür ediyorum
run-time da alanları ekleme nasıl yapılıyor ?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kod: Tümünü seç
Deger := IBQuery.FieldByName('ALAN_ADI').AsString; // alan adı biliniyorsa.
Deger := IBQuery.FieldValues['ALAN_ADI']; // sonuc variant.
for i := 0 to IBQuery.FieldCount - 1 do
Deger[i] := IBQuery.Fields[0].AsString; // alan adları bilinmiyorsa.
// ...
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Soru Yalnış Anlaşılmış.
Benim ulaşmak istediğim alanların bilgilri değil anaların isimleridir.
Yani SQL olarak 'select DURUMU,ADI,SOYADI FROM TabloADI' dediğimiz de 3 adet fieldimiz olacak ancak ben bunlara programdan 4. bir field(calculated) STRDURUMU ekliyorum ve normalinde Integer olan DURUMU fieldine gore STRDURUMU string degerini querynin oncalcfields olayında alıyor.
SQL kodu programda değişiyor yani farklı tablolardan farklı şeyler alınıyor ve gerektiğinde de değişik calculated fieldler ekleniyor. sonundada bunlar printere veya ekrana(DBGrid) e gonderılıyor.
Normalinde sorun yok ancak calc field eklendiğinde bu sefer SQL ile secilen fieldleri DBGrid goremediğinden yani Query1.Fields.count 4 yerine sadece1 oluyor ve hata oluşuyor.
Bu konuyu bilen varsa pls cevap yazsın selamlar
Yani SQL olarak 'select DURUMU,ADI,SOYADI FROM TabloADI' dediğimiz de 3 adet fieldimiz olacak ancak ben bunlara programdan 4. bir field(calculated) STRDURUMU ekliyorum ve normalinde Integer olan DURUMU fieldine gore STRDURUMU string degerini querynin oncalcfields olayında alıyor.
SQL kodu programda değişiyor yani farklı tablolardan farklı şeyler alınıyor ve gerektiğinde de değişik calculated fieldler ekleniyor. sonundada bunlar printere veya ekrana(DBGrid) e gonderılıyor.
Normalinde sorun yok ancak calc field eklendiğinde bu sefer SQL ile secilen fieldleri DBGrid goremediğinden yani Query1.Fields.count 4 yerine sadece1 oluyor ve hata oluşuyor.
Bu konuyu bilen varsa pls cevap yazsın selamlar
Ek bilgi
Bu arada IBQuery1.FieldDefList ten sellect ile seçilen fieldlere ulaşabiliyorum ama bu seferde kendim eklediğim yani calculatedfieldlere ulaşamıyorum.
Tabii IBQuery1.FieldDefList ile sadece listesini alabiliyorum onları DBgrid ustunde gosteremiyorum.
Uzun lafın kısası
Design Time ( program calımadan once) formun ustune query nesnesi ekleyip SQL ini yazdıktan sonra ustune çift tıklanınca add available fields menusu geliyor ve aynı zamanda add new fieldsten calculated fields eklenebiliyor. ben bunları porgramın içinden yani run time olarak yaptırmak istiyorum asıl sorun bu...
ilgilenecek arkadaşlaa şimdiden teşekkürler
Tabii IBQuery1.FieldDefList ile sadece listesini alabiliyorum onları DBgrid ustunde gosteremiyorum.
Uzun lafın kısası
Design Time ( program calımadan once) formun ustune query nesnesi ekleyip SQL ini yazdıktan sonra ustune çift tıklanınca add available fields menusu geliyor ve aynı zamanda add new fieldsten calculated fields eklenebiliyor. ben bunları porgramın içinden yani run time olarak yaptırmak istiyorum asıl sorun bu...
ilgilenecek arkadaşlaa şimdiden teşekkürler
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
slm arkadaşlar sonunda bu konuyu aradım ve buldum ama istenilen cevabı bulamadım. benimde sorunum programın çalışması aşamasında tablo nesnesine alan eklemekle ilgili. mesela Alter Table kullanarak veritabanımdaki dosyaya yeni alanlar ekledim ve bu eklediğim alanların veritabanındaki o tabloyu tutan Table(ZmySqlTable) nesnesine de program çalışırken eklenmesini istiyorum.
diye bir komut var ama nasıl kullanılacağını bilmiyorum. Bu konuda bilgisi ve önerisi olan arkadaşlardan rica ediyorum.
Kolay Gelsin...
Kod: Tümünü seç
ZMySqlTable1.AddTableFields
Kolay Gelsin...
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...