社区
数据库
帖子详情
[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时就出错,这是为什么??
...全文
119
4
打赏
收藏
[OLE DB] 怎么用IRowChange::Insert插入数据啊?
我定义的对象入下: CDataSource ds; CSession ss; CCommand rs; 我用rs.open(...)成功打开了数据库,并设置了DBPROP_UPDATABILITY 可我不知道怎么插入数据, 我调用rs.Insert()返回S_OK,但调用rs.Update时就出错,这是为什么??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
这个提供程序允许开发者通过
OLE
DB
(对象链接和嵌入
数据
库)接口与这些文件进行
数据
交互,通常在编程或自动化任务中使用,比如在 ASP.NET、VB.NET 或 C# 应用程序中。 描述中提到的问题 "未在本地计算机上注册...
Ole
Db
驱动程序
3. **
插入
数据
**:使用
Ole
Db
Command对象执行SQL
插入
语句,向Excel工作表中添加
数据
。 4. **输出文件**:设置HTTP响应类型和头部信息,使用`BinaryWrite`方法将文件的二进制流发送到客户端浏览器。 5. **清理资源**:...
c#_处理EXCEL_操作包括查询以及增改
//
插入
数据
的代码 Conn.Open();
Ole
Db
Command cmd = new
Ole
Db
Command("
insert
into [sheet1$] (a, b) values ('新
数据
', 111)", Conn); cmd.ExecuteNonQuery(); Conn.Close(); } ``` 这里我们使用了 ...
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,018
社区成员
39,807
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章