adoquery deki kayıt sayısı şu şekilde öğrenilmez mi arkadaşlar:
for x:=0 to adoquery2.DataSource.DataSet.RecordCount-1 do
Benim 2 tane tablom war. 1. tablodaki bütün kayıtları bir checklistbox a aktarıyorum. checklistbox ımdaki verilerden query sonucundakine eşit olan warsa, form create edildiğinde işaretli olmalılar. aşağıdaki kodu yazdım ama bana şu hatayı veriyor:
"list index out of bounds 1"
Kod: Tümünü seç
procedure TForm1.FormActivate(Sender: TObject);
var
row:integer;
col:integer;
x,y,a:integer;
sline,b,c:string;
begin
adoquery1.CLOSE;
adoquery1.SQL.Clear;
adoquery1.SQL.text:='SELECT * FROM KISILER';
adoquery1.OPEN;
for row := 0 to Datamodule2.DataSource2.DataSet.RecordCount-1 do
begin
sline := '';
for col :=1 to 1 do
sline := sline + Datamodule2.Adotable2.Fields[col].AsString;
checklistbox1.Items.Add(sline);
DataModule2.DataSource2.DataSet.Next;
end;
adoquery2.CLOSE;
adoquery2.SQL.Clear;
adoquery2.SQL.text:='SELECT A.ADI FROM GRUPLAR A, KISIGRUP B, KISILER C WHERE C.ID=21 AND B.KISILER_ID=C.ID AND A.ID=B.GRUPLAR_ID';
//adoquery2.Parameters.ParamByName('PARAMETRE_DEGERI').VALUE:=a;
adoquery2.OPEN;
Adoquery2.First;
for x:=0 to adoquery2.DataSource.DataSet.RecordCount-1 do
begin
edit4.Text:=adoquery2.Fields[0].Value;
b:=adoquery2.Fields[x].Value;
FOR y:=0 to checklistbox1.Items.Count-1 do
begin
edit5.Text:=checklistbox1.items.Strings[0];
c:=checklistbox1.items.Strings[y];
if b=c then
begin
checklistbox1.Checked[y]:=true;
end;
end;
Adoquery2.DataSource.DataSet.Next;
end;
end;
Kolay gelsin