有一个多表查询 select a,b,c,d from abb,bcc,... where ...这个结果放在Dbgrideh1里,现在我想在Dbgrideh1里再加一列,然后可以在里填数据,之后再把填了数据的所有行读出来写进一张表里.怎样才能实现.重点2个
1.怎么才能在Dbgrideh1里再加一列?
2.怎么才能把Dbgrideh1里填了数据的行读出来?
请高手帮忙!
1.怎么才能在Dbgrideh1里再加一列?
2.怎么才能把Dbgrideh1里填了数据的行读出来?
请高手帮忙!
1.实际上无论如何显示,与Dbgrideh无关,不知你新添加的列存在哪里?我的是存储在表中的。
2.添加内容的时候,弹出新的画面,使用update语句更新相关表即可,如果不希望存储内容,那么可以放在临时表中。
3.画面刷新时,直接重新查询即可。
问题的解决方法:
1.直接关联查询
2.使用查询读出
这个如果解决了,那我又怎么读grid中的数据呢
procedure SetGridInfo(StrGrid:TStringGrid;sOraQuery:TOraQuery);
var
i,j:integer;
begin
StrGrid.RowCount:=2;
i:=1;
while not sOraQuery.eof do
begin
StrGrid.Cells[0,i]:=inttostr(i);
for j:=1 to sOraQuery.FieldCount do
begin
StrGrid.Cells[j,i]:=sOraQuery.Fields[j-1].AsString;
end;
i:=i+1;
StrGrid.RowCount:=StrGrid.RowCount+1;
sOraQuery.Next;
end;
end;
select a,b,c,b,decode(a,a,0) e from ... where ...
但是怎么把我输入的e也就是e不为0的行读出来呢?
为什么报错.怎样才能把dbgrideh1的内容付给dbgrideh2呢?(除了用临时表)
推荐使用advstringgrid 。 比较简单的实现。