社区
数据库
帖子详情
[OLE DB] 怎么用IRowChange::Insert插入数据啊?
Codavid
2005-10-15 10:22:16
我定义的对象入下:
CDataSource ds;
CSession ss;
CCommand<CDynamicAccessor> rs;
我用rs.open(...)成功打开了数据库,并设置了DBPROP_UPDATABILITY
可我不知道怎么插入数据, 我调用rs.Insert()返回S_OK,但调用rs.Update时就出错,这是为什么??
...全文
116
4
打赏
收藏
[OLE DB] 怎么用IRowChange::Insert插入数据啊?
我定义的对象入下: CDataSource ds; CSession ss; CCommand rs; 我用rs.open(...)成功打开了数据库,并设置了DBPROP_UPDATABILITY 可我不知道怎么插入数据, 我调用rs.Insert()返回S_OK,但调用rs.Update时就出错,这是为什么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Codavid
2005-10-17
打赏
举报
回复
不是吧....没人知道?? 急啊~~~
Codavid
2005-10-16
打赏
举报
回复
........终于有人回了...我是在VS.NET下写的,你帮我看一下吧,谢谢!! :)
CDataSource ds;
CSession ss;
CCommand<CDynamicAccessor> rs;
CoInitialize(NULL);
USES_CONVERSION;
ds.Open();
BSTR buff;
ds.GetInitializationString(&buff, true);
cout<<OLE2T(buff)<<endl;;
SysFreeString(buff);
ss.Open(ds);
CDBPropSet* DBPropSet = new CDBPropSet(DBPROPSET_ROWSET);
DBPropSet->AddProperty(DBPROP_IRowsetUpdate, true);
DBPropSet->AddProperty(DBPROP_UPDATABILITY,
DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE | DBPROPVAL_UP_INSERT);
DBPropSet->AddProperty(DBPROP_CANSCROLLBACKWARDS, true);
DBPropSet->AddProperty(DBPROP_CANFETCHBACKWARDS, true);
rs.Open(ss, "SELECT 姓名 FROM oletest", (DBPROPSET*)DBPropSet);
for(DBORDINAL col = 1; col <= rs.GetColumnCount(); col++)
{
LPTSTR szBuff = OLE2T(rs.GetColumnName( col ));
cout<<szBuff<<'\t';
}
cout<<endl;
HRESULT hr = rs.MoveNext();
while(SUCCEEDED(hr) && hr != DB_S_ENDOFROWSET)
{
DBSTATUS DBStatus;
DBTYPE DBType;
rs.GetStatus( 1, &DBStatus);
rs.GetColumnType(1, &DBType);
if(FAILED(DBStatus))
cout<<"FAILED";
else if( DBStatus == DBSTATUS_S_ISNULL )
cout<<"<<NULL>>";
else if( DBType == DBTYPE_WSTR || DBType == DBTYPE_STR)
{
LPWSTR buff = (LPWSTR)rs.GetValue(1);
CString pszData = CString(buff);
cout<<pszData;
}
cout<<endl;
hr = rs.MoveNext();
}
LPWSTR pwszName = (LPWSTR)rs.GetValue(1);
wcscpy(pwszName, L"uu");
//rs.SetLength(1,2);
rs.SetStatus(1, DBSTATUS_S_OK);
rs.Insert();
rs.Update();
///////////在这里就出错了,下面的就不用看了/////////////
rs.MoveFirst();
LPWSTR pwszData = (LPWSTR)rs.GetValue(1);
wcscpy(pwszData, L"hhh");
DBCOUNTITEM rt = 0;
rs.SetData();
rs.Update();
cout<<rt<<endl;
rs.Close();
ss.Close();
ds.Close();
CoUninitialize();
帮帮我啊...谢谢
Codavid
2005-10-16
打赏
举报
回复
照上面的代码,调用rs.Update()的错误是DB_E_ROWSNOTRELEASED(列没有释放)
如果在它的前面加了rs.ReleaseRows() rs.Update()的错误是DB_E_ERRORSOCCURED(发生错误)
...晕啊!!!~~~ 有没有人知道这个怎么弄啊?
threenewbee
2005-10-15
打赏
举报
回复
什么错误?
我可以啊。
Microsoft.ACE.
OLE
DB
.12.0
解决 未在本地计算机上注册“Microsoft.ACE.
OLE
DB
.12.0”提供程序。的问题
pb
insert
ole
control 非法关闭退出的解决办法
从pb8开始到pb11.5大家都有同感就是在
插入
ole
控件时pb出错退出,pb9可以用组件
插入
,但是11之后就没有了组件
插入
功能。我用此方法成功解决了pb9,pb11.0,pb11.5的
insert
ole
出错问题。
轻松掌握C++
数据
库编程
随着
数据
库技术的广泛应用,在企业开发中,几乎90%的项目涉及
数据
库编程,
数据
库编程技术主要 使用O
DB
C API、ADO、ADO.NET、
OLE
DB
等方法,要想成为一名编程大牛,那么使用C++进行
数据
库编程必须熟练掌握。...
Oracle 11g 精简客户端打包 2012-06更新
Oracle Instant Client 11.1.06.20 可以免费分发的Oracle精简客户端 By ZhaHost in 2010.06.18 2012.05.18 重新打包,...2. Oracle
Ole
db
组件 3. Oracle odp.net2.x组件 4. Oracle Oramts组件(需要启用MSDTC服务)
System.Data.
Ole
Db
.
Ole
Db
Exception:“
INSERT
INTO 语句的语法错误。”--解决办法
参考...提示“System.Data.
Ole
Db
.
Ole
Db
Exception:“
INSERT
INTO 语句的语法错误。”” 解决方法如下 string sqla = "
insert
into register_time([keyID],[current_time],[Probation_peri...
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章