各位大侠:
我在一个查询窗口中调用一个子窗口显示查询结果,当第一次使用时打开查询结果显示窗口无法显示查询结果,返回记录为0,但之后再查询则能正确显示,请问如何解决?如果不使用判断子窗口是否打开,并且不把窗口设成子窗口则每执行查询都会打开一个窗口显示出正确的查询结果,有没有更好的解决方法?代码如下:
query1.close;
query1.sql.clear;
query1.SQL.Add(strsql); query1.open;
//判断子窗口是否打开
if Assigned(jjc_list1) then
begin
if isiconic(jjc_list1.handle) then showwindow(jjc_list1.handle,sw_restore)
else setforegroundwindow(jjc_list1.handle);
end
else
begin
if Application.FindComponent('jjc_list1')=nil then
jjc_list1:=Tjjc_list1.Create(nil)
else
jjc_list1:=Tjjc_list1.Create(jjc_list1);
end;
jjc_list1.Left :=1;
jjc_list1.top:=65;
jjc_list1.StatusBar1.Panels[0].Text := '记录总数:'+inttostr(jjc_find1.Query1.RecordCount);
jjc_list1.Show;
jjc_find1.Query1.RecordCount和query1.SQL.Add(strsql)中的query是同一个,
jjc_find1中的query是在jjc_list1创建之前就开始查询的。
我在一个查询窗口中调用一个子窗口显示查询结果,当第一次使用时打开查询结果显示窗口无法显示查询结果,返回记录为0,但之后再查询则能正确显示,请问如何解决?如果不使用判断子窗口是否打开,并且不把窗口设成子窗口则每执行查询都会打开一个窗口显示出正确的查询结果,有没有更好的解决方法?代码如下:
query1.close;
query1.sql.clear;
query1.SQL.Add(strsql); query1.open;
//判断子窗口是否打开
if Assigned(jjc_list1) then
begin
if isiconic(jjc_list1.handle) then showwindow(jjc_list1.handle,sw_restore)
else setforegroundwindow(jjc_list1.handle);
end
else
begin
if Application.FindComponent('jjc_list1')=nil then
jjc_list1:=Tjjc_list1.Create(nil)
else
jjc_list1:=Tjjc_list1.Create(jjc_list1);
end;
jjc_list1.Left :=1;
jjc_list1.top:=65;
jjc_list1.StatusBar1.Panels[0].Text := '记录总数:'+inttostr(jjc_find1.Query1.RecordCount);
jjc_list1.Show;
jjc_find1.Query1.RecordCount和query1.SQL.Add(strsql)中的query是同一个,
jjc_find1中的query是在jjc_list1创建之前就开始查询的。
解决方案 »
- 越用越觉得Windows 7很丑,而且设计得很不合道理!
- 請教:在ie中可以顯示的網頁,在webbrowser中確無法顯示,怎麼回事?在線等!給100分
- 帮忙看一下这个SQL语句哪儿写错了……
- 一个关于QReport的问题,请熟悉QReport的朋友帮忙看一看!
- 安装程序装到别人的机子上以后,help文件调不出来了,如何解决?
- DELPHI爱好者的群1509183
- 卖身求助!!!
- Paintbox1.Canvas.LineTo(x,y)画曲线的问题,在线等待
- 急!简单问题
- 今天真高兴,专家分总算有了 0 的突破。小新 4 分 + 伴水 3 分 = 网络游魂 7 分。
- 帮忙检查一下代码错误
- 帮忙检查一下代码错误
其上面的query1能用吗?gz!?
多条件查询,在一个窗口上输入条件,在另外一个窗口上显示
procedure TForm5.Button1Click(Sender: TObject);
var
Sql:String;
begin
Sql:='select * from 教师表,课程表 where (教师表.课程序号=课程表.课程序号) '
if edit1.Text<>'' then
SQL:=Sql + 'and (教师表.教师编号='+ edit1.Text +') ';
if edit2.Text<>'' then
SQL:=Sql +'and (教师表.教师姓名='+edit2.Text+') ';
if combobox1.Text<>'' then
SQL:=Sql +'and (教师表.所属院系='+combobox1.Text+') ';
if combobox2.Text<>'' then
SQL:=Sql +'and (课程表.课程名称='+combobox2.Text+')';
if form6 = nil then
begin
Application.CreateForm(Tform6, form6);
with form6 do
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(SQL);
adoquery1.open;
end; form6.show;
end
else
begin
with form6 do
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(SQL);
adoquery1.open;
end;
form6.Show;
end;end;
2 为什么用jjc_find1.Query1.RecordCount而不是直接Query1.RecordCount?
3 为什么创建是在这里,但你又使用的全局变量jjc_list1?
如果是同一个,那么在jjc_find1创建之前,query1是不能引用的