请问测试数据库能否正常连接的小函数怎么写啊?(内详)
我(VC初学者)想写一个测试数据库连接的小函数,自己写的有问题.
ADO不通过DSN对SQL SERVER数据库进行连接,通过前面得到的4个值来测试连接.
m_strDBIP:数据库Server的IP地址
m_strDBName:数据库名
m_strDBID:用户名
m_strDBPW:数据库密码
自己写的一部分,感觉问题很大,请帮我看看代码该怎么写,万分感谢.
void CDBSetupDlg::OnDBTestBUTTON()
{
//用对话框内的数据更新对象的数据
UpdateData();
//添加一个指向Connection对象的指针
_ConnectionPtr m_pConnection;
//创建连接字符串
//_bstr_t strConn;
//strConn = "driver={SQL Server};Server=127.0.0.1;DATABASE=vckbase;UID=sa;PWD=139";
HRESULT hr;
try
{
//创建Connection对象
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
//设置超时时间为5秒
m_pConnection->ConnectionTimeout = 5;
//hr = m_pConnection->Open("driver={SQL Server};Server=127.0.0.1;DATABASE=autocap;UID=sa;PWD=password","","",adModeRead);
hr = m_pConnection->Open("driver={SQL Server};Server=127.0.0.1;DATABASE=tempdb;UID=sa;PWD=password1","","",adModeUnknown);
//不通过DSN对SQL SERVER数据库进行连接:
}
}
//捕捉异常
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
}
if(SUCCEEDED(hr))
AfxMessageBox("连接数据库成功!");
//如果已经打开了连接则关闭它
//State属性指明当前Connection对象的状态,0表示关闭,1表示已经打开
if(m_pConnection->State)
m_pConnection->Close();
}