delphi stringgrid显示query查询oracle数据库数据
procedureTForm1.Edit2Change(Sender:TObject);vari:integer;beginquery1.SQL.Text:='selec...
procedure TForm1.Edit2Change(Sender: TObject);
var i:integer;
begin
query1.SQL.Text:='select out_time from av_sfis_pallet_out_t where out_emp_name='+''''+'JACK'+''''+ 'and serial_number='+''''+'CN1104HDGZ500008'+'''' ;
query1.Open;
query1.First;
stringgrid2.RowCount:=1;
stringgrid2.ColCount:=query1.Fields.Count;
for i:=0 to stringgrid2.ColCount-1 do
begin
stringgrid2.Cells[i,0]:=query1.Fields.Fields[i].AsString;
end;
query1.Next;
query1.Close;
end;
连的是BDE,oracle数据库,查询的结果就是一组数据,为何就是不能在stringgrid中显示出来,各位大虾请帮忙看看,没啥分。到底哪里错了,请把正确的代码给我,拜谢! 展开
var i:integer;
begin
query1.SQL.Text:='select out_time from av_sfis_pallet_out_t where out_emp_name='+''''+'JACK'+''''+ 'and serial_number='+''''+'CN1104HDGZ500008'+'''' ;
query1.Open;
query1.First;
stringgrid2.RowCount:=1;
stringgrid2.ColCount:=query1.Fields.Count;
for i:=0 to stringgrid2.ColCount-1 do
begin
stringgrid2.Cells[i,0]:=query1.Fields.Fields[i].AsString;
end;
query1.Next;
query1.Close;
end;
连的是BDE,oracle数据库,查询的结果就是一组数据,为何就是不能在stringgrid中显示出来,各位大虾请帮忙看看,没啥分。到底哪里错了,请把正确的代码给我,拜谢! 展开
3个回答
展开全部
你的Oracle连接对吗?
在Query1.open; 之后, 你可以用 ShowMessage(Query1.recordCount); 看看你的Query1是不是有结果. 如果有的话 ( >= 1), 后面应该改为:
stringgrid2.RowCount:= Query1.recordCount;
stringgrid2.ColCount:=1; // 你这里搞反了
for i := 0 to Query1.recordCount do
begin
stringgrid2.Cells[i,0]:=query1.fieldbyname('out_time').asString;
query1.Next; // 应该放在这里,不是for loop 外面
end;
query1.Close;
再试试看!
在Query1.open; 之后, 你可以用 ShowMessage(Query1.recordCount); 看看你的Query1是不是有结果. 如果有的话 ( >= 1), 后面应该改为:
stringgrid2.RowCount:= Query1.recordCount;
stringgrid2.ColCount:=1; // 你这里搞反了
for i := 0 to Query1.recordCount do
begin
stringgrid2.Cells[i,0]:=query1.fieldbyname('out_time').asString;
query1.Next; // 应该放在这里,不是for loop 外面
end;
query1.Close;
再试试看!
展开全部
query1.SQL.Text:='select out_time from av_sfis_pallet_out_t where out_emp_name='+''''+'JACK'+''''+ 'and serial_number='+''''+'CN1104HDGZ500008'+'''' ;
query1.Open;
query1.First;
stringgrid2.RowCount:= query1.recordcount +1; //此处原来错。
stringgrid2.ColCount:=query1.Fields.Count;
for i:=0 to stringgrid2.ColCount-1 do //给stringgrid的第一行写为字段名
begin
stringgrid2.Cells[0,i]:=query1.Fields[i].FieldName; //此处原来错。
end;
while not Query.eof do //开始循环数据集,给stringgrid写值
begin
for i:=0 to stringgrid2.ColCount-1 do //每一条数据的每一个字段都要写入
stringgrid2.Cells[Query1.RecNo,i]:=query1.Fields[i].asString;
query1.Next;
end;
query1.Close;
end;
query1.Open;
query1.First;
stringgrid2.RowCount:= query1.recordcount +1; //此处原来错。
stringgrid2.ColCount:=query1.Fields.Count;
for i:=0 to stringgrid2.ColCount-1 do //给stringgrid的第一行写为字段名
begin
stringgrid2.Cells[0,i]:=query1.Fields[i].FieldName; //此处原来错。
end;
while not Query.eof do //开始循环数据集,给stringgrid写值
begin
for i:=0 to stringgrid2.ColCount-1 do //每一条数据的每一个字段都要写入
stringgrid2.Cells[Query1.RecNo,i]:=query1.Fields[i].asString;
query1.Next;
end;
query1.Close;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Click(Sender: TObject);
var data1,date2,data3,data4,data5:string;
var i,j:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from tbluser';
adoquery1.Open;
adoquery1.first;
stringgrid1.RowCount:=adoquery1.RecordCount;
stringgrid1.ColCount:=adoquery1.Fields.Count;
for i:=0 to stringgrid1.RowCount-1 do
begin
for j:=0 to stringgrid1.ColCount-1 do
stringgrid1.Cells[i,j]:=adoquery1.Fields[j].Value;
adoquery1.Next;
end;
end
var data1,date2,data3,data4,data5:string;
var i,j:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from tbluser';
adoquery1.Open;
adoquery1.first;
stringgrid1.RowCount:=adoquery1.RecordCount;
stringgrid1.ColCount:=adoquery1.Fields.Count;
for i:=0 to stringgrid1.RowCount-1 do
begin
for j:=0 to stringgrid1.ColCount-1 do
stringgrid1.Cells[i,j]:=adoquery1.Fields[j].Value;
adoquery1.Next;
end;
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询