uptade set kanalıyla artan sayı vermek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Çağrıbey
Üye
Mesajlar: 40
Kayıt: 26 Kas 2004 11:25
Konum: Ankara

uptade set kanalıyla artan sayı vermek

Mesaj gönderen Çağrıbey »

selam,
aşağıdaki işlem ile, örneğin VAN ilinde bulunan kayıtlara
sıra numarası verdirmek istiyorum olmuyor.
bu işlem tabloyu baştan sona taratarak yapılabilir ama zaman alıyor.
bu yüzden, aşağıdaki formül ile daha kısa sürede yapılmasını nasıl sağlarız.

procedure TForm1.dxfColorButton1Click(Sender: TObject);
var
sayial:integer;
begin
inc(sayial);
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('UPDATE TABLO1 SET Liste_sira=sayial where Sehir_Adi= ''VAN'' ');
AdoQuery1.ExecSQL;
End;
Gelecek günden ne dilersen, doğacak günler onu getirir
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Kod: Tümünü seç

AdoQuery1.Sql.Add('UPDATE TABLO1 SET Liste_sira=sayial where Sehir_Adi= ''VAN'' '); 
yukarıdaki kodun altına sorgunun içinden sayial değişkenini çıkarıp

Kod: Tümünü seç

AdoQuery1.Params[0] := sayial;
olarak yazarsan sanırım sorunun çözülür. bildiğim kadarıyla sql cümlelerinin içinde değişken kullanırken params a atama yaparak kullanıyorsun.. kolay gelsin...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

şunu da söyleyeyim paramsa atanan [0] değeri ilk şartı [1] ikinci şarta atama yapıyor senin kod da where ile belirtilmiş tek şart mevcut. veya

Kod: Tümünü seç

IBQuery1.Params[0].AsInteger := sayial;  
IBQuery1.ParamByName('Liste_Sira').AsInteger := sayial ; 
parambyname ile direkt alan a atama yapabilirsin.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Çağrıbey
Üye
Mesajlar: 40
Kayıt: 26 Kas 2004 11:25
Konum: Ankara

Mesaj gönderen Çağrıbey »

Aşağıdaki şekilde yaptım, kod çalıştı, ancak rakam artarak yazmak yerine, tüm alanlara 1 olarak yazildi.
Sonuç olarak, bu işleni bir şekilde yapılması lazım ama nasil ? :)))

inc(sayial);
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('UPDATE GELENTABLO SET Sehir_Sirasi=:Sayial where Sehir_Adi=''VAN'' ');
AdoQuery1.Parameters[0].Value:=Sayial;
AdoQuery1.ExecSQL;
Gelecek günden ne dilersen, doğacak günler onu getirir
Cevapla