如何定时刷新数据库

BorlandXBuilder 2004-08-26 10:05:23
我用的是INTERBASE6.5数据库,IBQUERY控件,我每秒往数据库里INSERT一条记录,或是UPDATE其中一个字节,但是只有我在退出程序时候才可以把记录更新到数据库中,我怎样经过半小时或一定时间就更新一次
...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BorlandXBuilder 2004-08-27
  • 打赏
  • 举报
回复
我去试试,下午告诉结果
iyln 2004-08-27
  • 打赏
  • 举报
回复
可以先执行IBDatabase1->StartTransaction();
然后对数据库进行Insert和Update操作
需要写入数据库的时候执行IBDatabase1->Commit();
或者执行IBDatabase1->Rollback()来取消写入

这样行吗?
Lonelywolf1899 2004-08-26
  • 打赏
  • 举报
回复
设置一个Timer,在计时的时候刷新(Refresh)表,就可以了
真如实观 2004-08-26
  • 打赏
  • 举报
回复
void __fastcall TFrom1::Timer1Timer(TObject *Sender)
{
String strSql = "INSERT INTO USER VALUES ('TEST', 1);
IBQuery1->Close ();
IBQuery1->SQL->Clear ();
IBQuery1->SQL->Add (strSql);
IBQuery1->ExecSQL();
{
//不能用IBQuery1->Refresh ();
BorlandXBuilder 2004-08-26
  • 打赏
  • 举报
回复
对啊,只能是断开再连接,难道没有别的办法了吗?

还是我只用到了表面的东西!!!
xjq2003 2004-08-26
  • 打赏
  • 举报
回复
我也刷新过,可是这些办法都没有效果,只有最后用最笨的办法了;
那就是断开数据库,然后在连接上,这个办法很管用,我现在的程序就是这样做的
Lonelywolf1899 2004-08-26
  • 打赏
  • 举报
回复
用Query的Insert,那就在计时的时候,执行一次 ExecSQL(),IBQuery1->Open ();
这一句就不用了
BorlandXBuilder 2004-08-26
  • 打赏
  • 举报
回复
String strSql = "INSERT INTO USER VALUES ('TEST', 1);
IBQuery1->Close ();
IBQuery1->SQL->Clear ();
IBQuery1->SQL->Add (strSql);
IBQuery1->Open ();

上面是每秒做的事情,然后当计数器到1000的时候
IBQuery1->Refresh ();

是这样的吗?

我试了不行的啊

1,178

社区成员

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

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