List Index Out Of Bounds Hatasi

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

List Index Out Of Bounds Hatasi

Mesaj gönderen ChangeoveR »

Arkadaslar;

hazirladigim veritabani projemde Adoquery nesnesi kullaniyorum, bu nesnede iki adet parametre tanimliyorum ki bunlar sirasiyla k_tckno ve o_ogrno 'dur.

ilk sorgumu Kimlik_TcknoEdit 'in onexit olayina su sekilde yaziyorum ve herhangi bir sorun olmuyor:

DataModule2.Kayit_VarMi.Close;
DataModule2.Kayit_VarMi.SQL.Clear;
DataModule2.Kayit_VarMi.SQL.Add('select * from kimlik');
DataModule2.Kayit_VarMi.SQL.Add('where tckno = :k_tckno');
DataModule2.Kayit_VarMi.Parameters[0].Value := Kimlik_TcknoEdit.Text;
DataModule2.Kayit_VarMi.Open;

Fakat ikinci sorgumu Ogrenci_OgrNoEdit nesnesinin onexit olayina yazdigim da List Index Of Bound (1) hatasi aliyorum, sizce bu sorun neden kaynaklaniyor. (Yazdigim kod asagidadir.)

DataModule2.Kayit_VarMi.Close;
DataModule2.Kayit_VarMi.SQL.Clear;
DataModule2.Kayit_VarMi.SQL.Add('select * from ogrenci');
DataModule2.Kayit_VarMi.SQL.Add('where ogrno = :o_ogrno');
DataModule2.Kayit_VarMi.Parameters[1].Value := Ogrenci_OgrNoEdit.Text;
DataModule2.Kayit_VarMi.Open;

Yardimlariniz icin simdiden tesekkur ederim...
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

Re: List Index Out Of Bounds Hatasi

Mesaj gönderen ChangeoveR »

Kendi soruma kendim yanit vereyim, belki birilerinin isine yarayabilir umuduyla...

Her iki kodda da yer alan ; DataModule2.Kayit_VarMi.Close; komutunu DataModule2.Kayit_VarM.Active := False; ve DataModule2.Kayit_VarMi.Open; komutunu da DataModule2.Kayit_VarMi.Active := True; olarak degistirdik.

Ozetle;

DataModule2.Kayit_VarMi.Close; -> DataModule2.Kayit_VarM.Active := False;

DataModule2.Kayit_VarMi.Open; -> DataModule2.Kayit_VarM.Active := True;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: List Index Out Of Bounds Hatasi

Mesaj gönderen unicorn64 »

sorunun bundan kaynaklandığına ve yazdığınız şekilde düzeldiğine emin misiniz?

Kod: Tümünü seç

DataModule2.Kayit_VarMi.SQL.Add('select * from ogrenci');
DataModule2.Kayit_VarMi.SQL.Add('where ogrno = :o_ogrno');
DataModule2.Kayit_VarMi.Parameters[1].Value := Ogrenci_OgrNoEdit.Text;
bence sorun sorguda 1 tane parametre varken parameters[1] diyerek 2. parametreye erişmeye çalışmanızdan kaynaklanıyor...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

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

Re: List Index Out Of Bounds Hatasi

Mesaj gönderen sabanakman »

unicorn64 yazdı:... sorun sorguda 1 tane parametre varken parameters[1] diyerek 2. parametreye erişmeye çalışmanızdan kaynaklanıyor...
ChangeoveR yazdı:DataModule2.Kayit_VarMi.Close;
DataModule2.Kayit_VarMi.SQL.Clear;
DataModule2.Kayit_VarMi.SQL.Add('select * from kimlik');
DataModule2.Kayit_VarMi.SQL.Add('where tckno = :k_tckno');
DataModule2.Kayit_VarMi.Parameters[0].Value := Kimlik_TcknoEdit.Text;
DataModule2.Kayit_VarMi.Open;


DataModule2.Kayit_VarMi.Close;
DataModule2.Kayit_VarMi.SQL.Clear;
DataModule2.Kayit_VarMi.SQL.Add('select * from ogrenci');
DataModule2.Kayit_VarMi.SQL.Add('where ogrno = :o_ogrno');
DataModule2.Kayit_VarMi.Parameters[1].Value := Ogrenci_OgrNoEdit.Text;
DataModule2.Kayit_VarMi.Open;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ChangeoveR
Üye
Mesajlar: 29
Kayıt: 12 Mar 2008 03:29

Re: List Index Out Of Bounds Hatasi

Mesaj gönderen ChangeoveR »

unicorn64 yazdı:sorunun bundan kaynaklandığına ve yazdığınız şekilde düzeldiğine emin misiniz?

Kod: Tümünü seç

DataModule2.Kayit_VarMi.SQL.Add('select * from ogrenci');
DataModule2.Kayit_VarMi.SQL.Add('where ogrno = :o_ogrno');
DataModule2.Kayit_VarMi.Parameters[1].Value := Ogrenci_OgrNoEdit.Text;
bence sorun sorguda 1 tane parametre varken parameters[1] diyerek 2. parametreye erişmeye çalışmanızdan kaynaklanıyor...
Evet, sorun bu sekilde duzeldi cunku; parametre metodundaki degerler tanimladigim parametlerin indis numaralarindan baska bir sey degil. Dogru parametreye dogru degeri girdikten sonra 10 tane parametre tanimlamis olsaniz bile dilerseniz tekini dilerseniz hepsini kullanarak isleminizi yerine getirebilirisiniz.

Sorun, tablolari close ve open yaparken parametlerin listeden silinmesinden kaynaklaniyordu ki bu oldukca tehlikeli bir kullanim sekli, active ya da false yaptigimizda tanimladigimiz parametreler korunuyor. Dilerseniz bunu kendiniz de deneyerek gorebilirsiniz.

Saygilarimla...
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Re: List Index Out Of Bounds Hatasi

Mesaj gönderen Master43 »

Sorgu cümlesini tamamen değiştirirken parametren nasıl hala orada kalıyor. Bence iyice bi dene sonra foruma yaz. Buradaki insanları yanlış yönlendiriyor gibisin.
Table.Close; komutu Table.Active := False; komutunu çalıştırır zaten. Aynı şekilde
Table.Open; komutu Table.Active := True; komutunu çalıştırır.
Cevapla