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

大家好,新鸟来了,带个有关问题= =

2013-09-28 
大家好,新鸟来了,带个问题 哈哈,终于找到组织拉,刚进公司不到一个月哦。工作要求用C++builder做事0.0,然

大家好,新鸟来了,带个问题= =
哈哈,终于找到组织拉,刚进公司不到一个月哦。工作要求用C++builder做事0.0,然后今天遇到个小问题,顺便求教下牛人哦。问题就是:我用的是c++builder 2007和sql server2000,然后用ADOConnection、ADOQuery、DataSource、DBGrid这几个控件连接好数据库,并且用ADOQuery1->Close(); ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sqlstr); ADOQuery1->Open();显示数据库内容在DBGrid上。之后我就直接用鼠标和键盘去修改DBGrid里面的内容,但是修改结果只是DBGrid上面变化了,数据库的内容没改变(以上组件的属性都是按照默认属性,没修改),请教牛人,如何实现用鼠标,键盘直接修改DBGrid,进而实现数据库内容也变化(数据库是本地的),谢谢!
[解决办法]
一般情况下为按行提交。
DataSet是按记录提交的,对应DBGRID是按行显示记录的。
DBgrid在一行中修改时,不会提交到数据库,当离开该行时,会切换到其他记录,此时会触发提交。

ADO支持批量提交模式:
对于ADO如果设定为 ltBatchOptimistic 批量提交模式,则不会每行提交到数据,必须等到执行批量提交命令时,才一次性将所有的修改提交至数据库。

如果需要每个字段修改后就立即提交至数据库,那么就在所有字段的 OnChange事件中加上 Post语句。

热点排行