Query üzerinde kayıtları otomatik güncellemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Query üzerinde kayıtları otomatik güncellemek

Mesaj gönderen aydogan46 »

Merhabalar;
başlık biraz caip oldu ama tam toparlayamadım. yamak istediğim şu, memur maaş programı gibi bişey.
tabloda tüm memurların verileri var. her memurun derece ve kademe gibi maaşa etki eden alanları farklı. sonuçta buton_clik e yazacagım kod tablodaki ilk kaydı getirecek, alanları bir değişkene atayacak ve üzerinde matematiksel işlemi yapacak bu son değişiklikleri veritabanında günceleyecek ve diğer kişiye geçecek. bu kayıt sonuna kadar devam edecek. VT olarak paradox kullanıyorum. benim ugraştığım kod da şu ancak hata veriyor.

procedure TForm4.Button1Click(Sender: TObject);
var
esyardimi,katsayi:double;
sonuc,tckimlik:string;
begin
while not query1.Eof do
begin
tckimlik:=form4.Query1Tckimlikno.Value;
katsayi:=form4.Query1Aylikgosterge.Value;
esyardimi:=700*katsayi;
query1.SQL.Add('update memurmaas set esyardimi=:yardim where tckimlikno=:tckimlik ');
query1.ParamByName('tckimlik').Value:=tckimlik;
query1.ParamByName('yardim').Value:=esyardimi;
query1.ExecSQL;
tckimlik:='';
query1.Next;
end
end;
bilgisini paylaşacak arkadaşlara şimdiden teşekkürler
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

query1.SQL.Add('update memurmaas set esyardimi=:yardim where tckimlikno=:tckimlik '); 
code sanırım bu şekilde olucak yardım değeri diye bir değişkeni sql e ekledikten sonra tanımlıyorsun.

Kod: Tümünü seç

query1.SQL.Add('update memurmaas set esyardimi=:esyardimi where tckimlikno=:tckimlik '); 
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

hocam sanırım yardım değeri parametre olarak kullandım orda. değişken değil yani.
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

Birde verdiği hatayı yazsan sorunu bulmak daha kolay olacak.
Zannedersem değişkenlerin veri tiplerinde hata var.

Aslında gördüğüm kadarı ile senin işlem yapacağın alanlar ve kullandığın değişkenler aynı tablo içerissinde. Sana farklı bir yol tavsiye edeyim
ikinci bir query i forma yerleştir ve veritabanına gerekli bağlantıları yap. ikincinin adı Query2 olsun tabi bunu sadece veri tabanına bağla gride veya datasource gerek yok.
Koduda şu şekilde değiştir

while not query1.Eof do
begin
query2.SQL.Clear;
query2.SQL.Add('update memurmaas set esyardimi=700*katsayi where tckimlikno=:tckimlik ');
query2.ParamByName('tckimlik').Value:=form4.Query1Tckimlikno.Value;
query2.ExecSQL;

query1.Next;
end
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

tavsiyene için teşekkür ederim. dediğiniz doğru ancak diğer alanlar içinde matematiksel işlemler çok olunca biraz zor gibi duruyo. ben aslında olayı çözdüm. query ile değilde table değişkeni ile yaptım oldu. herkese teşekkür ederim
Cevapla