找回密码
 立即注册

QQ登录

只需一步,快速开始

g18070414

中级会员

8

主题

44

帖子

988

积分

中级会员

积分
988

活字格认证

g18070414
中级会员   /  发表于:2010-11-5 12:00  /   查看:10836  /  回复:15
我用测试版时,用VC++连接数据表不能更新,我做了一个sample,你问问为何,只能显示数据不能更新数据
//使用动态ADO连接
_RecordsetPtr m_pIntpRecset,m_pCrvRecset,m_pxslRecset;
m_pxslRecset->CursorType = adOpenStatic;
m_pxslRecset->CursorLocation = adUseClient;

sqlStr="SELECT * FROM TESTTABLE_XUSL";
hr = m_pxslRecset->Open((LPCSTR)sqlStr,_variant_t((IDispatch*)m_pConnection, TRUE),adOpenDynamic,adLockBatchOptimistic, adCmdUnknown);

c_spreadCtrl.SetDataSource(NULL);
c_spreadCtrl.SetDataSource((LPUNKNOWN)m_pxslRecset);

c_spreadCtrl.Refresh();
c_spreadCtrl.DataRefresh();
c_spreadCtrl.SetDAutoSave(FALSE);

//使用保存
c_spreadCtrl.DataSave(); //不能保存
就是上面的代码

15 个回复

倒序浏览
gw0506
超级版主   /  发表于:2010-11-5 12:05:00
沙发
您好:
    请问“不能保存”是指有异常发生,还是说数据库中的数据没有和界面同步且并没有异常发生?
回复 使用道具 举报
g18070414
中级会员   /  发表于:2010-11-5 13:49:00
板凳
没有数据同步,未发生异常
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-5 14:15:00
地板
您是否在修改数据之后,通过SetCellDirtyFlag方法,将相应的cell置为dirty状态?
回复 使用道具 举报
g18070414
中级会员   /  发表于:2010-11-5 15:22:00
5#
我是在表格中修改,直接输入的数据
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-5 16:13:00
6#
那请更改Open中的参数试一下:
  1. hr = m_pxslRecset->Open((LPCSTR)sqlStr,_variant_t((IDispatch*)m_pConnection, TRUE),[b]adOpenStatic[/b],adLockBatchOptimistic, [b]adCmdText[/b]);
复制代码
回复 使用道具 举报
g18070414
中级会员   /  发表于:2010-11-8 11:05:00
7#
还是不行,我连的是oracle数据库 ,用的是DataSave函数
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-8 11:16:00
8#
能否发一个Demo上来?
回复 使用道具 举报
g18070414
中级会员   /  发表于:2010-11-8 14:37:00
9#
请问附件如何上传? 没这个功能?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2010-11-8 15:06:00
10#
回复框中,右上角有“高级回复”,打开后点击“添加附件”,上传结束后,点击“插入”即可。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部