OLEDB使用CDynamicAccessor连Oracle的问题……特邀roscoe(草上飞)、stavck(关未明)及其他几位熟悉Oledb的朋友~ OLEDB使用CDynamicAccessor连Oracle,根本取不到任何数据,为啥???一样的用法在sql server下使用正常。是不是要对那个dbproperty进行什么特殊设置??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我再发: CDataSource db; CSession m_session; HRESULT hr; CDBPropSet dbinit(DBPROPSET_DBINIT); dbinit.AddProperty(DBPROP_AUTH_PASSWORD, "netman"); dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false); dbinit.AddProperty(DBPROP_AUTH_USERID, "dbusrpub"); dbinit.AddProperty(DBPROP_INIT_DATASOURCE, "jhck.com"); dbinit.AddProperty(DBPROP_INIT_LCID, (long)2052); dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4); dbinit.AddProperty(DBPROP_INIT_PROVIDERSTRING, ""); hr = db.OpenWithServiceComponents("OraOLEDB.Oracle.1", &dbinit); if (FAILED(hr)) MessageBox("abc"); hr = m_session.Open(db); if (FAILED(hr)) MessageBox("abc"); CCommand<CDynamicAccessor, CBulkRowset> dbCommand; try { _RecordsetPtr spRs,rs; ADORecordsetConstructionPtr spADOsCt; CDBPropSet propset(DBPROPSET_ROWSET); propset.AddProperty(DBPROP_CLIENTCURSOR, true); propset.AddProperty(DBPROP_IRowsetChange, true); propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE); CString sCommand; sCommand="select * from privatepara"; HRESULT hr = dbCommand.Create(m_session, (LPCTSTR)sCommand); if(FAILED(hr)) _com_issue_error(hr); hr = dbCommand.Open(&propset, NULL, true); if(FAILED(hr)) _com_issue_error(hr); hr = spRs.CreateInstance(__uuidof(Recordset)); if(FAILED(hr)) _com_issue_error(hr); hr = spRs->QueryInterface(__uuidof(ADORecordsetConstruction), (void **)&spADOsCt); if(FAILED(hr)) _com_issue_error(hr); hr = spADOsCt->put_Rowset(dbCommand.m_spRowset); if(FAILED(hr)) _com_issue_error(hr); //Demonstrates, how to populate DataGrid by assigning it a Recordset object.// m_ctlDataGrid.SetCaption(sTableName); m_ctlDataGrid.SetRefDataSource(NULL); m_ctlDataGrid.SetRefDataSource(spRs); m_ctlDataGrid.SetDataMode(1); m_ctlDataGrid.SetEditable(2); m_ctlDataGrid.Refresh(); } catch (_com_error &e) { AfxMessageBox(e.ErrorMessage()); } 虽能和DATAGIRD之类的控件绑定,但不能编辑!!!请各位赐教: to:21bird(世纪菜鸟:sailing) 你好,我现在也正遇这个难题,不知你QQ是多少,可不可以交流一下,我想既然ADO是OLEDB的包装,真接用OLEDB一样也可以,但我翻了好多书,都没有讲到那个GetRecordset(),但底是怎么回事? 求一inline hook例子源码。 如何取得real解码器的版本号 干了一年多 第一份离职报告 希望这是个转折点吧 周末,散分,先来先得 散分!我编制的免费软件在华军软件园发布了!欢迎大家使用! 网页完美保存 如何设置软件的使用期限 DLL中使用ADO的问题,请赐教!!!! 数据库的问题 CListView中排序问题.... <COM原理与应用>的原代码下不来啊,急,请帮忙! 谁能详细描述下“管道名称”,如“\\ServerName\pipe\PipeName”的意义?win98支持命名管道吗?
CSession m_session; HRESULT hr;
CDBPropSet dbinit(DBPROPSET_DBINIT);
dbinit.AddProperty(DBPROP_AUTH_PASSWORD, "netman");
dbinit.AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false);
dbinit.AddProperty(DBPROP_AUTH_USERID, "dbusrpub");
dbinit.AddProperty(DBPROP_INIT_DATASOURCE, "jhck.com");
dbinit.AddProperty(DBPROP_INIT_LCID, (long)2052);
dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);
dbinit.AddProperty(DBPROP_INIT_PROVIDERSTRING, "");
hr = db.OpenWithServiceComponents("OraOLEDB.Oracle.1", &dbinit);
if (FAILED(hr))
MessageBox("abc");
hr = m_session.Open(db);
if (FAILED(hr))
MessageBox("abc"); CCommand<CDynamicAccessor, CBulkRowset> dbCommand; try
{
_RecordsetPtr spRs,rs;
ADORecordsetConstructionPtr spADOsCt; CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_CLIENTCURSOR, true);
propset.AddProperty(DBPROP_IRowsetChange, true);
propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE); CString sCommand;
sCommand="select * from privatepara";
HRESULT hr = dbCommand.Create(m_session, (LPCTSTR)sCommand);
if(FAILED(hr))
_com_issue_error(hr);
hr = dbCommand.Open(&propset, NULL, true);
if(FAILED(hr))
_com_issue_error(hr); hr = spRs.CreateInstance(__uuidof(Recordset));
if(FAILED(hr))
_com_issue_error(hr);
hr = spRs->QueryInterface(__uuidof(ADORecordsetConstruction), (void **)&spADOsCt);
if(FAILED(hr))
_com_issue_error(hr);
hr = spADOsCt->put_Rowset(dbCommand.m_spRowset);
if(FAILED(hr))
_com_issue_error(hr); //Demonstrates, how to populate DataGrid by assigning it a Recordset object.
// m_ctlDataGrid.SetCaption(sTableName);
m_ctlDataGrid.SetRefDataSource(NULL);
m_ctlDataGrid.SetRefDataSource(spRs);
m_ctlDataGrid.SetDataMode(1);
m_ctlDataGrid.SetEditable(2);
m_ctlDataGrid.Refresh(); }
catch (_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
虽能和DATAGIRD之类的控件绑定,但不能编辑!!!请各位赐教: