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中显示出来,各位大虾请帮忙看看,没啥分。到底哪里错了,请把正确的代码给我,拜谢!
展开
 我来答
conan415
2011-03-08 · TA获得超过138个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:208万
展开全部
你的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;
再试试看!
googleyeyou
2011-03-09 · TA获得超过186个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:130万
展开全部
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户66007
2011-03-09 · TA获得超过143个赞
知道答主
回答量:201
采纳率:0%
帮助的人:167万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式