首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

DBGridEH有关问题再请问,如何让DBGridEH里的数据自动更新显示

2012-02-11 
DBGridEH问题再请教,怎么让DBGridEH里的数据自动更新显示DBGridEH连接的Dataset中,可让某列可进行修改,因

DBGridEH问题再请教,怎么让DBGridEH里的数据自动更新显示
DBGridEH连接的Dataset中,可让某列可进行修改,因为在数据库中有触发器修改该列后,其他的字段相应也要进行变化,怎么能让我在DBGridEH中修改了该列后,相应发生变化的列也自动的更新显示到DBGridEH中。

[解决办法]
//這是使用ADO的方式。如果用UDAC 會更簡單
ADODataSet1->CommandText = "SELECT A.*,B.* FROM MyTable A Left Join NextTable B";
ADODataSet1->Open();

void __fastcall TFMPersonLeave::ADODataSet1AfterOpen(TDataSet *DataSet)
{
_di_Properties p = ADODataSet1->Recordset->Properties ;
//設定刪除時只作用於表
p->Item["Unique Table"]->Set_Value("MyTable");
//設定數據更改時用動態命令取回數據。
p->Item["Resync Command"]->Set_Value(
"SELECT A.*,B.* FROM MyTable A Left Join NextTable B WHERE A.ID = ?");
}
void __fastcall TFMPersonLeave::ADODataSet1AfterPost(TDataSet *DataSet)
{
ADODataSet1->UpdateCursorPos();
ADODataSet1->Recordset->Resync(1,2);
}
//---------------------------------------

[解决办法]

探讨
引用:
重新打开一下
ADOQuery->Close();
ADOQuery->Open();
或者刷新一下就可以了

我知道重新打开一下是可以的
但是我应该把代码写在那个事件里呢,才可以让我在DBGridEH里更改A字段后也显示更改后的B字段。

热点排行