Arsip: [ask] Mencari letak error list index out of bound

 
user image
more 7 years ago

kepiss

mas bagaimana sih mencari letak kesalahan list index out of bound... boleh kah saya post Coding saya...untuk anda koreksi...heheh... tapi panjang banget codingnya.... jadi gak tau salahnya dimana.... //ini sebagian conding saya post tolong bantuin koreksi ya...
with dm.Q1 , tree.Items  do
begin
// bersihkan tree
tree.Items.Clear;
close;
SQl.Text:='delete from pohon';
ExecSQL;
//cari jenis jawaban
close;
SQL.Text:='select nama_atribut from tb_atribut where is_hasil="Y" and is_aktif="Y"';
open;
atribut_hasil:=fields[0].AsString; ;
close;
SQl.Text:='select distinct '+atribut_hasil+' from tb_kasus';
open;
//atribut yang sedang aktif
atribut_terpakai:=TstringList.Create;
id_node:=TstringList.Create;
nilai_atribut_terpakai:=TstringList.Create;
nocabang:=TstringList.Create;
//untuk menyimpan klasifikasi pada variable
hasil:=TStringList.Create;
tampil:=TStringList.Create;
jml_hasil:=0;
while not eof do
begin
  hasil.Add('result_'+inttostr(recNo));
  tampil.Add(Fields[0].AsString);
  inc(jml_hasil);
  next;
end;
level:=0;
jml_node:=0;
buat_node;
hasil.Free;
tampil.Free;
atribut_terpakai.Free;
id_node.Free;
nilai_atribut_terpakai.Free;
saya curiganya disini.....
user image
more 7 years ago

DelphiExpert

saya juga curiganya disana..... :mrgreen:
user image
more 7 years ago

mas_kofa

tentu perintah dm.q1.open; di atas kemungkinan bisa menghasilkan dataset yg kosong, jika ini terjadi tentunya perintah fields[0].string; akan berakibat index out of bounds....
user image
more 7 years ago

kepiss

@mas_kofa: tentu perintah dm.q1.open; di atas kemungkinan bisa menghasilkan dataset yg kosong, jika ini terjadi tentunya perintah fields[0].string; akan berakibat index out of bounds....
kenapa bisa kosong ya mas sedang kan perintah open tersebut untuk membuka Query 'select nama_atribut from tb_atribut where is_hasil="Y" and is_aktif="Y". mas_kofa bisa tolong benerin sedikit gak??
user image
more 7 years ago

henry_sys

@kepiss:
@mas_kofa: tentu perintah dm.q1.open; di atas kemungkinan bisa menghasilkan dataset yg kosong, jika ini terjadi tentunya perintah fields[0].string; akan berakibat index out of bounds....
kenapa bisa kosong ya mas sedang kan perintah open tersebut untuk membuka Query 'select nama_atribut from tb_atribut where is_hasil="Y" and is_aktif="Y".
anda saja tidak tahu apalai kami yg gak lihat datanya..... utuk mengetahui dibaris mana coding yang menampilkan error itu coba ditrace aja pake F8, kalau memang ada di dataset yg null anda bisa exception misal pake if

if not (Qu.IsEmpty) then
<maka lakukan perinta-perintah yg anda inginkan>
else
<bisa kasi message>
msgDlg('Data tidak ditemukan','mtWarning',[mbOk],0)
end;
Semoga membantu
user image
more 7 years ago

kepiss

@henry_sys:
@kepiss: [quote:08d7f4d6a6="mas_kofa"]tentu perintah dm.q1.open; di atas kemungkinan bisa menghasilkan dataset yg kosong, jika ini terjadi tentunya perintah fields[0].string; akan berakibat index out of bounds....
kenapa bisa kosong ya mas sedang kan perintah open tersebut untuk membuka Query 'select nama_atribut from tb_atribut where is_hasil="Y" and is_aktif="Y". [/quote:08d7f4d6a6] anda saja tidak tahu apalai kami yg gak lihat datanya..... utuk mengetahui dibaris mana coding yang menampilkan error itu coba ditrace aja pake F8, kalau memang ada di dataset yg null anda bisa exception misal pake if

if not (Qu.IsEmpty) then
<maka lakukan perinta-perintah yg anda inginkan>
else
<bisa kasi message>
msgDlg('Data tidak ditemukan','mtWarning',[mbOk],0)
end;
Semoga membantu
ya mas.....terimakasih untuk saranya....... tak cobanya dulu,,,,,
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com