第一次点击一按钮时,会查询数据库,并将结果显示在DBGRIDEH中,以后会多次点击该按钮查询数据库,我想以后点击按钮查询到的结果都能够在DBGRIDEH中增加一行显示,而不清空DBGRIDEH中原有的显示内容,该如何做呀???(原有显示内容不能通过再次查询数据库的方法得到,性能不允许),救我呀,各位大虾~~~~~
解决方案 »
- 求一个好用的控件!!!!
- 如何让TClientDataSet从数据库取出的字段类型从ftWideString变成 frString?
- 报表问题,挺难。帮帮忙,大家
- 这是什么错误啊?????????
- 怎么让panel在运行时可以拖动其边界改变大小?
- delphi5中的错误!急!!!!!在线等!
- 请问怎样将Excel的数据显示在DBGrid里?
- 我写的软件,这次连安装程序都是自己写的,想交流的请帮我测试一下.我可以给你源码的,如果写得不好,我不怕打击的,只要看到回复就行.
- 非常不爽 散分1!!!
- 如何读取RichEdit中文字和颜色、字体等数据?
- 要是将单引号插入数据库中,该怎么处理?
- 过生日,散分
同时查询在另一个查询中进行,有了询结果之后就把新的查询结果放到关联到dbgrideh的那个dataset里去就行了
DBgrideh的dataset 对应到 query1
oncreate:query1.sql.text:='select * from table where 1=2';
query1.open;
查询:
query2.sql.text:='select * from table where XXXX';
query2.open;
while not query2.eof do
begin
query1.append;
query1.fields<=====query2.fields(复制)
query2.next;
end;
谢谢,继续帮忙呀~~~~
adoquery1.FieldByName('id').Value := adoquery2.fieldbyname('id').AsInteger;
可以这样做
首先设一个全局变量 public i
1、在窗体的onshow事件中赋初值
i:=0//表示第一次点击按钮前的值,点击过后i的值变为1
2、假设我们查询的是表mz(包括“民族编号”和"民族名称"两个字段//作者注释)
在设置好数据库连接后(这里设置一个query控件),在按钮的onclick事件中输入代码:if i=0 then //第一次点按钮查询
begin
Query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from mz');//连接某个数据库的mz表
query1.Prepare;
query1.Open;
i:=1;
end
else //如果不是第一次点击按钮了,则插入一个空记录,代码如下
Begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into mz(民族编号,民族名称)values(:mzbh,:mzmc) ');
query1.ParamByName('mzbh').AsString:='';
query1.ParamByName('mzmc').AsString:='';
query1.Prepare;
query1.ExecSQL;
//执行后,再次查询
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from mz');
query1.Prepare;
query1.Open;
form1.DBGrid1.Refresh;
end;说明:这里mz表中的两个字段都可以为空,如果其中一个设置了主键或其他不能为空的情况,上面程序需做以下修改:
......
query1.ParamByName('mzbh').AsString:='不能为空时的值';
query1.ParamByName('mzmc').AsString:='不能为空时的值';
.......
不要忘了
3、在窗体的onclosequery事件中关闭query1的连接
query1.close;这样你的问题就解决了,我测试过了。
然后在打开连接,重新查询
不如把結果存在memo上好啦
用dbgrid 實現,又不能重新查詢結果。估計不太可能