佚名通过本文主要向大家介绍了sqlserver2008数据库,数据库sqlserver,sqlserver2005数据库,sqlserver2000数据库,sqlserver2012数据库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 求救:SQL Server 数据库连接问题
描述:
本人C++新手。
采用系统:Win 7旗舰版、VS 2010、SQL Server 2008 。
*******************************************************************
数据连接:
{
::CoInitialize(NULL);
_bstr_t strAdoConn("Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=BookManage;Data Source=柳松-PC\SQLEXPRESS");
HRESULT hr;
try
{
hr = m_pCon.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
hr = m_pCon->Open(strAdoConn, "", "", adModeShareDenyNone|adModeUnknown);//adModeShareDenyNone
if(SUCCEEDED(hr))
hr = m_pRs.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
{
/*m_pRs1.CreateInstance(__uuidof(Recordset));*/
m_fConnected = TRUE;
}
else
{
m_fConnected = FALSE;
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("Warning: 连接数据库发生异常. \r\n错误信息: %s; \r\n文件: %s; \r\n行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
MessageBox(0, errormessage, _T("系统提示"), MB_OK);
m_fConnected = FALSE;
}
catch(...)
{
AfxMessageBox(_T("Warning :连接数据库时发生未知错误"));
}
}
**************************************************************************************
登录确定按钮:
void CDlgLogin::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString c_user, c_password;
m_user.GetWindowText(c_user);
m_password.GetWindowText(c_password);
if (c_user.IsEmpty() || c_password.IsEmpty())
{
MessageBox(_T("用户名称或密码不能为空"), _T("用户登录信息"));
return;
}
CString sql;
sql.Format(_T("select * from tb_operator where name = '%s' and password = '%s'"), c_user, c_password);
HRESULT hr;
try
{
hr = m_pRs->Open((_variant_t)sql, m_pCon.GetInterfacePtr(), adOpenKeyset, adLockOptimistic, adCmdText);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("Warning: 连接数据库发生异常. \r\n错误信息: %s; \r\n文件: %s; \r\n行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
MessageBox(errormessage, _T("系统提示"), MB_OK);
return;
}
if (SUCCEEDED(hr))
{
Flag = TRUE;
user = m_pRs->GetCollect("name").bstrVal;
password = m_pRs->GetCollect("password").bstrVal;
EndDialog(0);
}
else
{
user = _T("");
password = _T("");
MessageBox(_T("用户名或密码不正确."),_T("提示"), 64);
return;
}
}
***************************************************************************************
连接没有问题,在登录按钮时弹出错误信息。请高手指点一下。是那个地方错了。万分感谢!!!!
未知错误
描述:
本帖最后由 ls520wh 于 2012-02-21 16:23:43 编辑
背景:本人C++新手。
采用系统:Win 7旗舰版、VS 2010、SQL Server 2008 。
*******************************************************************
数据连接:
{
::CoInitialize(NULL);
_bstr_t strAdoConn("Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=BookManage;Data Source=柳松-PC\SQLEXPRESS");
HRESULT hr;
try
{
hr = m_pCon.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
hr = m_pCon->Open(strAdoConn, "", "", adModeShareDenyNone|adModeUnknown);//adModeShareDenyNone
if(SUCCEEDED(hr))
hr = m_pRs.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hr))
{
/*m_pRs1.CreateInstance(__uuidof(Recordset));*/
m_fConnected = TRUE;
}
else
{
m_fConnected = FALSE;
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("Warning: 连接数据库发生异常. \r\n错误信息: %s; \r\n文件: %s; \r\n行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
MessageBox(0, errormessage, _T("系统提示"), MB_OK);
m_fConnected = FALSE;
}
catch(...)
{
AfxMessageBox(_T("Warning :连接数据库时发生未知错误"));
}
}
**************************************************************************************
登录确定按钮:
void CDlgLogin::OnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString c_user, c_password;
m_user.GetWindowText(c_user);
m_password.GetWindowText(c_password);
if (c_user.IsEmpty() || c_password.IsEmpty())
{
MessageBox(_T("用户名称或密码不能为空"), _T("用户登录信息"));
return;
}
CString sql;
sql.Format(_T("select * from tb_operator where name = '%s' and password = '%s'"), c_user, c_password);
HRESULT hr;
try
{
hr = m_pRs->Open((_variant_t)sql, m_pCon.GetInterfacePtr(), adOpenKeyset, adLockOptimistic, adCmdText);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("Warning: 连接数据库发生异常. \r\n错误信息: %s; \r\n文件: %s; \r\n行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
MessageBox(errormessage, _T("系统提示"), MB_OK);
return;
}
if (SUCCEEDED(hr))
{
Flag = TRUE;
user = m_pRs->GetCollect("name").bstrVal;
password = m_pRs->GetCollect("password").bstrVal;
EndDialog(0);
}
else
{
user = _T("");
password = _T("");
MessageBox(_T("用户名或密码不正确."),_T("提示"), 64);
return;
}
}
***************************************************************************************
连接没有问题,在登录按钮时弹出错误信息。请高手指点一下。是那个地方错了。万分感谢!!!!
未知错误