ADOTable1 nesnesine kod ile "add all fields" yapma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
utrade
Üye
Mesajlar: 22
Kayıt: 02 Nis 2006 11:41

ADOTable1 nesnesine kod ile "add all fields" yapma

Mesaj gönderen utrade »

Merhaba sayın delphici kardeşlerim. Hepimizin de bildiği gibi bir Table, ADOTable veya ADOQuery nesnelerine veri tabanındaki alanların isimlerini ekleyerek kod içerisinde bu alanları kullanabiliyoruz. Bunuda Table nesnesinin "fields editor" penceresine tıklayarak "add all fields" seçeneğini seçerek bağlantılı veritabanındaki mevcut tüm alanların isimlerini ekleyebiliyoruz.

Benim veritabanın sorguyla oluştuğu için daha doğrusu çapraz sorguyla oluştuğu için bu alanlar herzaman değişebiliyor. Runtime da add all fields diyemiyeceğimize göre bu işlemi kodla nasıl yaptırabilirim.

Kısacası; Table nesnesinde Add All Fields (Crtl+F) işini nasıl kodla yaparım! :roll:

Teşekkür ederim...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
o iş biraz zor gibi. eklesen bile direk tabloadialanadi.value şeklinde kullanabileceğini sanmıyorum.
tabloadi.fielddeflist ve tabloadi.fields i biraz araştır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Fieldlara ulaşmak için illa fields editore ekli olması gerekmiyor. Kodlarında şu şekilde ulaşabilirsin:

ADOQuery1.FieldByName('AlanIsmi').AsString

gibi mesela
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

TField

Mesaj gönderen sabanakman »

Mrb; eğer programcı alan editöründen alan tanımlamamışsa zaten tüm alanlar .Open (.Active:=True) işleminden sonra .Fields özelliği olarak otomatik olarak oluşur. Bu alanlara erişmek için değişik metotlar bulunmaktadır.

Kod: Tümünü seç

var VariantDeger:Variant; Alan:TField;
begin
  VariantDeger:=Table1['AlanAdi'];
  Alan:=Table.FindField('AlanAdi');//alan yoksa nil değer verir
  Alan:=Table.FieldByName('AlanAdi');//alan yoksa hata (istisna) çıkarır.
  Alan:=Table.Fields[2];
end;
bu arada bu alan tiplerine göre değişik alan nesneleri otomatik olarak oluşur. Mesela alan tipi integer ise o alan .Fields[?]'ın tipi de TIntegerField olacaktır. Kısacası alan tanımı oluşturmazsan sana pek fazla bir yük düşmüyor. Herşey otomatik olarak oluşturuluyor. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla