说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在线等!!!!!!!! ADO+SQL Server

编辑:说三道四文库 发布时间:2018-08-20 06:20
HTML文档下载 WORD文档下载 PDF文档下载
_ConnectionPtr mcConnection;
_RecordsetPtr mcRecordset;
bool mbConnected;
HRESULT hr;

_bstr_t source("Driver={SQL Server};Server=CHOCOBO;Uid=PIV;Pwd=PIV;Database=PIZZA.NET");

_bstr_t user("sa");
_bstr_t pwd("");
try
{
hr = mcConnection.CreateInstance(_uuidof(Connection));
hr = mcConnection->Open(source, user, pwd, 16);
hr = mcRecordset.CreateInstance(_uuidof(Recordset));
mbConnected = true;
hr = mcConnection->Close();
}
以上程序在执行时总在最后Close时出错,出错信息用ERROR捕捉为:“对象关闭时,不允许操作”,不知是什么原因。
可能是mcConnection->Open(source, user, pwd, 16);没有执行成功。
判断一下hr是否执行成功了
只错了最后一句,前面都通过了。
试试先关闭
mcRecordset
再CLOSE 它
运行通过并不等于数据库打开成功!
如果在中间加语句的话,我可以对数据库进行操作;mcRecordset我没有用open,怎么close?
那如果这样呢,

// hr = mcRecordset.CreateInstance(_uuidof(Recordset));

close还会错吗?

hr = mcConnection->Open(source, user, pwd, 16);
主要是这句有关

hr = mcRecordset.CreateInstance(_uuidof(Recordset));
与这句无关
因为是mcConnection->Close();
那就判断一下

if(!SUCCEEDED(hr))
{
return FALSE;;
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘