利用c++连接Sql server数据库问题
voidmain(){_ConnectionPtrpMyConnect=NULL;_ConnectionPtrm_pConnection=NULL;_RecordsetP...
void main(){ _ConnectionPtr pMyConnect = NULL; _ConnectionPtr m_pConnection=NULL; _RecordsetPtr m_pRecordset = NULL; _RecordsetPtr pRecordset=NULL; _bstr_t strConnect ; HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
std::cout << SUCCEEDED(hr) << std::endl; if (SUCCEEDED(hr)){ }
strConnect = "Provider =SQLOLEDB.1;Persist Security Info=false;Initial Catalog=pubs;Data Source=XIE-SUPERPC;Database =university;User ID=sa;Password=xch1994; "; //Database指你系统中的数据库 try { m_pConnection->Open(strConnect, "", "", NULL); std::cout << "成功连接数据库~~~累死了,有木有。。。" << std::endl; } catch (_com_error &e) { std::cout << "数据库没有连接上。。。" << std::endl; } if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset)))) { return; } try { m_pRecordset->Open(_variant_t("student"), _variant_t((IDispatch*)pMyConnect), adOpenKeyset, adLockOptimistic, adCmdTable);
m_pConnection.CreateInstance(_uuidof(Connection)); m_pRecordset.CreateInstance(__uuidof(Recordset)); CString strSql = "select * from student"; m_pRecordset = m_pConnection->Execute(_bstr_t(strSql),NULL, adCmdText);
while (!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出 { CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem("name")->Value; pRecordset->MoveNext(); } } catch (_com_error &e) { printf("无法打开student表~~~~瞬间感觉不会再爱了。。。"); }}
上面的代码中老是检测到m_pConnection->Open(strConnect, "", "", NULL);发生错误,求各位大神指教,附上一下运行的结果。 展开
std::cout << SUCCEEDED(hr) << std::endl; if (SUCCEEDED(hr)){ }
strConnect = "Provider =SQLOLEDB.1;Persist Security Info=false;Initial Catalog=pubs;Data Source=XIE-SUPERPC;Database =university;User ID=sa;Password=xch1994; "; //Database指你系统中的数据库 try { m_pConnection->Open(strConnect, "", "", NULL); std::cout << "成功连接数据库~~~累死了,有木有。。。" << std::endl; } catch (_com_error &e) { std::cout << "数据库没有连接上。。。" << std::endl; } if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset)))) { return; } try { m_pRecordset->Open(_variant_t("student"), _variant_t((IDispatch*)pMyConnect), adOpenKeyset, adLockOptimistic, adCmdTable);
m_pConnection.CreateInstance(_uuidof(Connection)); m_pRecordset.CreateInstance(__uuidof(Recordset)); CString strSql = "select * from student"; m_pRecordset = m_pConnection->Execute(_bstr_t(strSql),NULL, adCmdText);
while (!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出 { CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem("name")->Value; pRecordset->MoveNext(); } } catch (_com_error &e) { printf("无法打开student表~~~~瞬间感觉不会再爱了。。。"); }}
上面的代码中老是检测到m_pConnection->Open(strConnect, "", "", NULL);发生错误,求各位大神指教,附上一下运行的结果。 展开
2个回答
2015-03-24
展开全部
基本流程
万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。让我们来看看ADO数据库开发的基本流程吧!
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
万事开头难,任何一种新技术对于初学者来说最重要的还是“入门”,掌握其要点。让我们来看看ADO数据库开发的基本流程吧!
(1)初始化COM库,引入ADO库定义文件
(2)用Connection对象连接数据库
(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4)使用完毕后关闭连接释放对象。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询