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...
List Index Out Of Bounds Hatasi
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.
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.
-
- Üye
- Mesajlar: 29
- Kayıt: 12 Mar 2008 03:29
Re: List Index Out Of Bounds Hatasi
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;
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;
Re: List Index Out Of Bounds Hatasi
sorunun bundan kaynaklandığına ve yazdığınız şekilde düzeldiğine emin misiniz?
bence sorun sorguda 1 tane parametre varken parameters[1] diyerek 2. parametreye erişmeye çalışmanızdan kaynaklanıyor...
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;
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...

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...

- 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
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 =_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. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 29
- Kayıt: 12 Mar 2008 03:29
Re: List Index Out Of Bounds Hatasi
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.unicorn64 yazdı:sorunun bundan kaynaklandığına ve yazdığınız şekilde düzeldiğine emin misiniz?
bence sorun sorguda 1 tane parametre varken parameters[1] diyerek 2. parametreye erişmeye çalışmanızdan kaynaklanıyor...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;
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...
Re: List Index Out Of Bounds Hatasi
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.
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.