急,急急,层次查询再次麻烦大家了,(10分)

  • 主题发起人 主题发起人 topdelphi
  • 开始时间 开始时间
T

topdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的窗体有两个CHEAKLISTBOX,改成例如将数据库的字段读入到CHEAKLISTBOX1里
,当选择CHEAKLISTBOX1里面的某个或多个字段之后,将数据库的记录读入到CHEAKLISTBOX2里
,如果用户在CHEAKLISTBOX1选择多个字段,或在CHEAKLISTBOX2选择多个记录的时候,
都能查询出来将数据显示在STRINGGRID里,但是我的查询语句出了错,数据库是SQL里面的
PUBS的JOBS表,请问如何修改啊。

procedure TForm1.BitBtn1Click(Sender: TObject);//这是查询代码

VAR
i,j,k:INTEGER;
s:tstringlist;
sql:string;
begin
s:=tstringlist.Create ;
for i:=0 to list1.Items.Count -1 do
if list1.Checked then
s.Add(list1.Items);
if s.Count =0 then
begin
s.Free;
exit;
end;

sql:=s[0];
for i:=1 to s.Count -1 do
sql:=sql+','+s;
sql:='select'+SQL+' from JOBS ';
query2.SQL.Text :=sql;
query2.Active :=true;

stringgrid1.ColCount :=query2.RecordCount ;
stringgrid1.RowCount :=1;
j:=0;
k:=0;

while not query1.Eof do
begin
if list2.Checked[j] then
begin
for i:=0 to query2.FieldCount -1 do
stringgrid1.Cells[i,k]:=query1.Fields.AsString;
k:=k+1;
stringgrid1.RowCount:=stringgrid1.RowCount +1
end;
j:=j+1;
query2.Next;
end;
query2.Active :=false;
s.Free;
end;


procedure TForm1.List1Click(Sender: TObject); //这是读入CHEAKLIST的数据代号
var
i,J:integer;
begin
list2.Clear;
for i:=0 to list1.Items.Count -1 do
BEGIN
case i of
0: begin
if list1.Checked=false then
begin
dbgrid1.Columns[0].Visible :=false;
end

else
begin
list1.Checked:=true;

QUERY1.First;
while not query1.Eof do begin
list2.Items.Add(QUERY1.FieldS[0].ASSTRING);
QUERY1.Next;
DBGRID1.Columns[0].Visible :=TRUE;
end;
end;
end;

1: begin
if list1.Checked =false then
begin
dbgrid1.Columns[1].Visible :=false;
end
else
if list1.Checked then
begin

QUERY1.First;
while not query1.Eof do begin
list2.Items.Add(query1.Fields[1].asstring);
query1.Next;
dbgrid1.Columns[1].Visible :=true;
end;
end;
end;

2: begin
if list1.Checked then
begin
QUERY1.First;
WHILE NOT QUERY1.Eof DO BEGIN
list2.Items.Add(QUERY1.Fields[2].ASSTRING);
QUERY1.Next;
END;
end;
end;
end;
end;
end;

end.
 
后退
顶部