AdoQuery Performans
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
pardon hocam, özür dilerim. durumunun böyle olduğunu bilmiyordum.
Ancak bence yine de eğer bu işi öğrenmek istiyorsanız, kendiniz uğraşmanız gereken noktalar var. Yöntemi öğrenip, diğer kod kısmıyla sizin uğraşmanız daha önce de dediğim gibi size çok şeyler katar. Delphi bilginizi artırır.
Bunlar tavsiye tabii ki. Ama kodda ısrarlı iseniz kodda yazarız, problem değil.
Kolay gelsin.
Ancak bence yine de eğer bu işi öğrenmek istiyorsanız, kendiniz uğraşmanız gereken noktalar var. Yöntemi öğrenip, diğer kod kısmıyla sizin uğraşmanız daha önce de dediğim gibi size çok şeyler katar. Delphi bilginizi artırır.
Bunlar tavsiye tabii ki. Ama kodda ısrarlı iseniz kodda yazarız, problem değil.
Kolay gelsin.
Hemen Restledim CTRL+ALT+DEL
Aman Allahım Makina kapanıyor.
Açıldıktan sonra
Günaydın!
Hocam yazmış olduğum soru aşağıda
Calculadet alanlar üzerinde değiştirme işlemi yapamıyorum. Demek istediğim şu
Alan1 = Adet alanı
Alan2 = Fiyat alanı
Alan3 = Toplam alanı 'bu alan calculadet olarak tanımlanmış olsun
Alan1 ve alan2 de yapılan değişiklikler toplam alanına yansıyor.
Alan3 ancak Calculadet olarak tanımlanmış olan alanda değişkilik yapamıyoruz (klavyeden veri giremiyoruz) ben bunun çözümünü merak etmiştim.
Bu soruya Fahrettin Hocam aşağıdaki yazmış olduğum cevabı verdi
Evet Admin'in de dedig gibi calculated alanlari gerek delphi tarafinda gerekse veritabani tarafina degistiremezsiniz. zaten varolus mantiklari belirli bir mantık ile hesaplanmaları. Gridinizin icinde el ile veri giremezsiniz.
ama eger ben toplami gireyim adete bolup birim fiyati kendisi bulsun tarzinda bir amaciniz varsa : O zaman toplam alanını da tabloda tutup mesela before post'da toplam alanini bos ise gerekli degerleri carpip o alana deger atarsiniz. Yok eger toplam alani dolu ise adete bolup buldugunuz degeri birimfiyat alanina atarsiniz.
Bu soruyada ben bir örnek kod yazarak sürdüğüm izin doğru olup olmadığını sordum.
Peki Hocam Toplam alanını tablomda alan ayırdığımı farzedelim before post eventine yazacağım kod aşağıdaki gibimi olcak !
[/b]
Ve Hocam neler olduysa bu kodu yazdıktan sonra oldu.
Bu soru benim için önemli yazmış olduğum programın kemik noktalarında biri benim için.
Umarım netice'ye bugün ulaşabiliriz.
Aman Allahım Makina kapanıyor.

Açıldıktan sonra

Günaydın!
Hocam yazmış olduğum soru aşağıda
Calculadet alanlar üzerinde değiştirme işlemi yapamıyorum. Demek istediğim şu
Alan1 = Adet alanı
Alan2 = Fiyat alanı
Alan3 = Toplam alanı 'bu alan calculadet olarak tanımlanmış olsun
Alan1 ve alan2 de yapılan değişiklikler toplam alanına yansıyor.
Alan3 ancak Calculadet olarak tanımlanmış olan alanda değişkilik yapamıyoruz (klavyeden veri giremiyoruz) ben bunun çözümünü merak etmiştim.
Bu soruya Fahrettin Hocam aşağıdaki yazmış olduğum cevabı verdi
Evet Admin'in de dedig gibi calculated alanlari gerek delphi tarafinda gerekse veritabani tarafina degistiremezsiniz. zaten varolus mantiklari belirli bir mantık ile hesaplanmaları. Gridinizin icinde el ile veri giremezsiniz.
ama eger ben toplami gireyim adete bolup birim fiyati kendisi bulsun tarzinda bir amaciniz varsa : O zaman toplam alanını da tabloda tutup mesela before post'da toplam alanini bos ise gerekli degerleri carpip o alana deger atarsiniz. Yok eger toplam alani dolu ise adete bolup buldugunuz degeri birimfiyat alanina atarsiniz.
Bu soruyada ben bir örnek kod yazarak sürdüğüm izin doğru olup olmadığını sordum.
Peki Hocam Toplam alanını tablomda alan ayırdığımı farzedelim before post eventine yazacağım kod aşağıdaki gibimi olcak !
Kod: Tümünü seç
Kod:
if Table1TOPLAM.Asinteger = ' ' then
Table1TOPLAM.AsInteger:=Table1ADET.AsInteger*Table1FIYAT.AsInteger
Else
Table1FIYAT.AsInteger:=Table1TOPLAM.AsInteger / Table1ADET.AsInteger;
[/b]
Ve Hocam neler olduysa bu kodu yazdıktan sonra oldu.
Bu soru benim için önemli yazmış olduğum programın kemik noktalarında biri benim için.
Umarım netice'ye bugün ulaşabiliriz.
[quote="husonet"]Hemen Restledim CTRL+ALT+DEL
Peki Hocam Toplam alanını tablomda alan ayırdığımı farzedelim before post eventine yazacağım kod aşağıdaki gibimi olcak !
[/b]
Daha öncede soylemistim ama gozden kactı galiba
Calculated fieldlara Kod icinde Table in OnCalculated olay yordamı haricinde bir veri girmek/guncellemek hataya sebep olur
Table1TOPLAM.AsInteger:=Table1ADET.AsInteger*Table1FIYAT.AsInteger
atamasının OnCalculated olayı icinde yapılması lazım baska yerde olmaz
ayrıca bu olay yordamı icerisinde de diger data alanlarına yazamazsın sadece okursun
yani
Table1FIYAT.AsInteger :=0;//ornegin
gibi bir atama "dataset edit modda degil" diye bir hataya sebep olur
kolay gelsin
Peki Hocam Toplam alanını tablomda alan ayırdığımı farzedelim before post eventine yazacağım kod aşağıdaki gibimi olcak !
Kod: Tümünü seç
Kod:
if Table1TOPLAM.Asinteger = ' ' then
Table1TOPLAM.AsInteger:=Table1ADET.AsInteger*Table1FIYAT.AsInteger
Else
Table1FIYAT.AsInteger:=Table1TOPLAM.AsInteger / Table1ADET.AsInteger;
[/b]
Daha öncede soylemistim ama gozden kactı galiba
Calculated fieldlara Kod icinde Table in OnCalculated olay yordamı haricinde bir veri girmek/guncellemek hataya sebep olur
Table1TOPLAM.AsInteger:=Table1ADET.AsInteger*Table1FIYAT.AsInteger
atamasının OnCalculated olayı icinde yapılması lazım baska yerde olmaz
ayrıca bu olay yordamı icerisinde de diger data alanlarına yazamazsın sadece okursun
yani
Table1FIYAT.AsInteger :=0;//ornegin
gibi bir atama "dataset edit modda degil" diye bir hataya sebep olur
kolay gelsin
Fahrettin hocam teşekkür ederim dün akşam denemiştim çalıştırdım ama hep hata alıyordum bugünkü vermiş olduğunuz ipucuyla hata olayındanda kurtulacağıma inanıyorum carptığım alanlarda boş bırakmazsam hata yok ama alanına en az bir tanesini boş bırakıp başka bir kayıt'a geçtiğim zaman hata alıyorum.
Her halde bu akşam bu hatayıda çözerim.
İyi Çalışmalar.
Her halde bu akşam bu hatayıda çözerim.
İyi Çalışmalar.
bir delphicinin yapmaması gereken bir yazım hatası. derlemede hata vermese bile bu yanlış bir kullanımdır. zaten asinteger ile bir değerden bahsediyorsunuz. o halde kıyaslama için de integer bir değer koymalısınız. string değil. içeriğin boş olup olmadığı kontrolunuif Table1TOPLAM.Asinteger = ' ' then
Table1TOPLAM.AsInteger:=Table1ADET.AsInteger*Table1FIYAT.AsInteger
Else
Table1FIYAT.AsInteger:=Table1TOPLAM.AsInteger / Table1ADET.AsInteger;
if Table1TOPLAM.IsNull then ... şeklinde kontrol edebilirsin.
Yani kısaca yukarıda kullandığın if bloğunda if Table1TOPLAM.Asinteger = ' ' then şartı hiç sağlanmadığından sürekli else bloğuna düşüp, orada da Table1ADET.AsInteger ın değeri null veya sıfır dönüyorsa bir hata alman çok muhtemeldir, işi sağlama bağlamak için bu kontrolü de yapmak gerekiyor.