table componentini kullanırken,
önce databasename
sonra da tablename
özelliklerini atadıktan sonra;
table componenti üzerine tıklayarak "fields editor"e giriyoruz. ve oradan "field"lar ekliyoruz.
aynı şeyin benzeri query comp. için de geçerli.
peki bu işi program içerisinde kodla nasıl yapabilirim.
umarım sorum anlaşılmıştır ve saçma değildir.
table veya query ile ilgili
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
siz table nin database, datasource bağlantılarını yapıp, query için de sql cümleciğini yazarak bağlantıları yapıp open yaptığınız zaman zaten alanlar eklenmiş oluyor ancak kullanımda fark var.
siz manuel olarak alanları eklediğinizde bunu TableAlan_adi.value yada TableAlan_Adi.text olarak kullanırsınız diğer türlü Table.Fieldbyname('Alan_adi').asstring yada Table.Fieldbyname('Alan_Adi').asfloat gibi kullanabilirsiniz.
siz manuel olarak alanları eklediğinizde bunu TableAlan_adi.value yada TableAlan_Adi.text olarak kullanırsınız diğer türlü Table.Fieldbyname('Alan_adi').asstring yada Table.Fieldbyname('Alan_Adi').asfloat gibi kullanabilirsiniz.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Kod: Tümünü seç
Table1.DataBaseName:='xyx';
Table1.TableName:='tbl.db';
Table1.Open;
Query1.DataBaseName:='xyx';
Query1.SQL.Text:='select * from tbl';
Query1.Open;
Kod: Tümünü seç
for i:=0 to Table1.Fields.Count-1 do
ShowMessage(Table1.Fields[i].FieldName);
-S:=Table1Alan.AsString; şeklini fields editor doluyken kullanabiliyorduk.
-S:=Table1.FieldByName('Alan').AsString; veya
-S:=Table1.FindField('Alan').AsString;
şeklinde kullanılabilir. Aralarında küçük bir fark vardır. O da yazılan alan ismi hatalı ve tabloda yoksa ortaya çıkar. FieldByName'de çıkacak hata yazılan alan tabloda bulunamadı hatasıdır, FindField'da ise bir bellek erişim hatası olan Access Violation hatası çıkar. Bir de alanın kaçıncı sırada olduğunu biliyorsak numarasından da erşilebilinir. Mesela Alan ilk sırada ise aşağıdaki kod da aynı işlevi görür.
-S:=Table1.Fields[0].AsString;
Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cebeser'e :Biz bu bahsettiğiniz field yükleme işlemini niye yapıyoruz? Kod yazarken fieldlara ulaşmada kolaylık sağlaması için. Yani her field için bir TField componenti oluşturup kod yazarken bu componentleri kullanıyoruz. Runtime da neden böyle bir şeye ihtiyacımız olsun? Bu dediğiniz işleme sadece delphi IDE'sine bir expert yazıyorsanız ihtiyacınız olur.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguraya ek olarak ;
statik alanların ne getirdiği ve götürdüğü hep tartışılır ancak en önemli eksiğini belirtmek durumundayım. böyle yapar ve stattik fieldleri oluşturursanız DB eklediğiniz her alanda programın da bu alanı görmesi gerekir + yeniden derlenmesi. bu sizin için problem olur...
bunun yerine fieldbyname fonksiyonu daha uygun olacaktır. ancak bu seferde alan isimlerinde değişiklik (alter table vs) aparken dikkatli olmalısınız.
statik alanların ne getirdiği ve götürdüğü hep tartışılır ancak en önemli eksiğini belirtmek durumundayım. böyle yapar ve stattik fieldleri oluşturursanız DB eklediğiniz her alanda programın da bu alanı görmesi gerekir + yeniden derlenmesi. bu sizin için problem olur...
bunun yerine fieldbyname fonksiyonu daha uygun olacaktır. ancak bu seferde alan isimlerinde değişiklik (alter table vs) aparken dikkatli olmalısınız.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Her birinin yerine göre ayrı ayrı işlevleri vardır. Her ne kadar field editorden alan eklemek pratik gibi görünse de durgun (statik) yapıdadır ve değişken (dinamik) olmadığından bazı durumlar için işlevsel değildir. Mesela tek table nesnesi ile esnek bir kayıt aktarma projejinde string değerlerden oluşturulan şablonlarla çok tırmalamaya gerek kalmaz. Kayıt aktarımı için yapılması gereken değişiklikler sadece string sabitler (alan isimleri) üzerinde olacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
teşekkürrler
fikirleriniz için teşekkürler.
query.open ve
table.open
ile field ların otomatik yüklendiğini sayenizde öğrendim.
fieldbynam özelliği daha dinamik geldi bana ve işimi gördü, teşekkürler.
query.open ve
table.open
ile field ların otomatik yüklendiğini sayenizde öğrendim.
fieldbynam özelliği daha dinamik geldi bana ve işimi gördü, teşekkürler.
CE