Query fieldname ve origin yardım lütfen

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

Query fieldname ve origin yardım lütfen

Mesaj gönderen BLuE_ALoNE »

merhaba arkadaşlar

Query de SQL özelliğine

Select custno AS CNo, company As Sirket from customer şeklinde yazılan deyim sonucu

kod olarak Edit1.text:= Query1.fieldbyname('custno').text; yazdığımda hata veriyor

Edit1.text:= Query1.fieldbyname('CNo').text dersem oluyor

ama benim yazacağım programda CNo kullanıcı tarafından MusteriNo gibi yada başka bir şekilde degiştirilebilecek ama ben

Edit1.text e orjinal adı Custno olduğu için seçili iken içerdiği mevcut değeri aktarmak istiyorum. ama bir türlü başaramadım.

gridde seçtiriyorum. ayrıca gridde sutün sırasıda kullanıcı tarafından değiştirilebilecek yani item index gibi özellikler de olmuyor tek çare bence tablenin orjinal adından eşleştirmek ama o nasıl bilmiyorum

yardımlarınız için şimdiden çok teşekkür ederim.
akipek
Üye
Mesajlar: 254
Kayıt: 24 Haz 2005 01:28

Mesaj gönderen akipek »

edit1.text := query1['custno']; yu dene.
Eğer custno sayısal bir alan ise duruma göre
edit1.text := inttostr(query1['custno']); yada floattostr(...) yi deneyebilirsin.
Ha birde eğer custno nun değeri null ise onuda kabul etmez
o yüzden önce
if query1['custno'] = null then diye bir kontrol koyup işlem yapabilirsin.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Query fieldname ve origin yardım lütfen

Mesaj gönderen sabanakman »

BLuE_ALoNE yazdı:Select custno AS CNo, company As Sirket from customer şeklinde yazılan deyim sonucu

kod olarak Edit1.text:= Query1.fieldbyname('custno').text; yazdığımda hata veriyor

Edit1.text:= Query1.fieldbyname('CNo').text dersem oluyor
Mrb; custno AS CNo, dedikten sonra geçmiş olsun, artık alanımızın adı CNo, dur. Custno değildir. Burada benim anladığıma göre Grid'lerde veya benzeri şekilde başlık bilgisini değiştirmek. Bunun daha uygun bir yolu zaten var. Alanın DisplayLabel özelliği bu işlevi sunmaktadır. Mesela yukarıdaki sorgu Select custno, company from customer şeklinde yazılıp sorgu açıldıktan sonra

Kod: Tümünü seç

Query1.FieldByName('custno').DisplayLabel:='Müşteri No';
Query1.FieldByName('company').DisplayLabel:='Şirket';  
yazılırsa grid ve türevi her yerde alan başlığı olarak Müşteri No ve Şirket olarak görünecek fakat alana Query1.FieldByName('custno') gibi bir kodla ulaşılabilecektir. Bir de DBGrid'in Column özelliğinin Title.Caption özelliği var. Başlık yazısı buradanda değiştirilebilir. DBGrid1.Columns[0].Title.Caption:='Müşterinin Numarası'; gibi. Kolay gelsin.
En son sabanakman tarafından 13 Kas 2006 10:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
akipek
Üye
Mesajlar: 254
Kayıt: 24 Haz 2005 01:28

Mesaj gönderen akipek »

harbiden ha haklısın yuh bize ki hiç dikkat etmemişiz
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

Yardımcı Olmaya Çalışanlara teşekkürler

Mesaj gönderen BLuE_ALoNE »

arkadaşlar yardımcı olmaya çalıştığınız için teşekkür ederim. sorunu başka bir yolla çözdüm.

nasıl çözdüm derseniz şu şekilde

Kodu alanına bağlı dbeditin Querysine şunu yazdım

birçok table yapısında IDNO, yani anahtar alan vardır.

bende Select TOP 1 * From Customer Where IdNo = :Deger yazdım

kod olarak Deger paramatresine ikinci formunda Gridi bağladığım Querynin seçili kayıtta odaklandığı IDNO yu eşitledim. bu sayede başlık ne olursa olsun bir filtre oluştu ve kayıt sayısı 1 iken ki IDNO her zaman farklı bir değer almak zorundadır.

sonuçta Gridin başlığı ne olursa olsun seçili kayıtın Dbeditin içine almayı başardım. tekrar teşekkür ederim. esnek bir program yazmak ve kullanıcıya alternatif sunmaya çalışmak gerçekten zormuş. ama bence değiyor. Kolay Gele...
Cevapla