请教:C++builder使用DBGrid查询时总是闪烁,怎么解决。

return_sir 2016-07-27 11:33:22
最近做了一个私人租房系统,里面有九个表,基它功能都基本完成,就是要统计时要将九个表的ZJ(租金)字段统计求和,
功能倒是实现了,就是执行过程中,DBGrid中闪烁几下,然后再出结果,好难看,效果好差;
我查询的做法是:依次求和每一个表,将结果集输出到DBGrid表中,然后从DBGrid中获取值再保存到一个Int变量中,
最后将九个变量的值相加。
我想请问,如何解决闪烁?? 或者 是我的方法错了,是不是可以将查询的结果集 隐式获取到变量中????
...全文
1531 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2016-08-04
  • 打赏
  • 举报
回复
在窗体的构造函数里: this->DoubleBuffered = true; DBGrid1->DoubleBuffered=true; 参考: http://blog.163.com/tab_98/blog/static/1192409720167475319874/
draculamx 2016-07-31
  • 打赏
  • 举报
回复
这种数据求和的问题,从原则上讲,是不应该通过界面来完成的,应该所有数据运算,求和,都在数据库中完成,不要和界面搅合在一起。。
draculamx 2016-07-31
  • 打赏
  • 举报
回复
在你的数据库中,建立一个临时表,每次计算的结果,存放到临时表中(每次用临时表之前将它清空),然后用DBGRID一次性的读出临时表的内容就好啦。。。。
return_sir 2016-07-30
  • 打赏
  • 举报
回复
我定义一个变量 int save; 然后通过SQL语句将结果集成获取到DBGird表中,最后再从DBGird表中读取值保存到前面的save变量中, 这样读一个表还像没有闪烁,但是读几个表时就有这种情况发生,我觉得是不是我操作的方法用问题啊??
FASM_FASM 2016-07-28
  • 打赏
  • 举报
回复
ADOQuery2->DisableControls();

......           //数据库操作
......
......

ADOQuery2->EnableControls();

......           //界面操作
......
ooolinux 2016-07-28
  • 打赏
  • 举报
回复
我不懂电脑 2016-07-27
  • 打赏
  • 举报
回复
在Form的Show事件里加上this->DoubleBuffered = true;
return_sir 2016-07-27
  • 打赏
  • 举报
回复
我的代码是这样的(片段):

    int a,b;
    sqlCmd="SELECT sum(zj) FROM room_1;";
    ADOQuery2->SQL->Clear();  // 必须先Clear再Add最后Open,顺序不能改
    ADOQuery2->SQL->Add(sqlCmd);
    ADOQuery2->Open();       //只能查
    //ADOQuery2->EnableControls();
    a=DBGrid1->Columns->Grid->Fields[0]->Value;
    //a=DBGrid1->`FieldByName("total_title")->AsString;

    //ADOQuery2->DisableControls();
    sqlCmd="SELECT sum(zj) FROM room_2;";
    ADOQuery2->SQL->Clear();
    ADOQuery2->SQL->Add(sqlCmd);
    ADOQuery2->Open();       //只能查
    //ADOQuery2->EnableControls();
    b=DBGrid1->Columns->Grid->Fields[0]->Value;
    total=a+b;
    ShowMessage( "\t房租统计信息\n\n"
                 "\t1楼:    "+IntToStr(a)+"元\t\t\n"+
                 "\t2楼:    "+IntToStr(b)+"元\n"+
                 "\t合计:   "+IntToStr(total)+"元\n" );
是不是我的操作不正确??
return_sir 2016-07-27
  • 打赏
  • 举报
回复
@songhtao 我刚才加入了这条代码,还是不行啊,这DBGrid中用SQL语句的查询可以在别的地方获取吗?

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧