VC连SQL Server找到就Messagebox(数据库已经连上).小弟初学数据库编程,上面压得紧..帮忙!!!!数据库已经连上,就是查询一下又没有值.有就返回AfxMessageBox(str)...函数退出时Debug有错误,Release没事.查询不存在的值时错误,查询存在的值时没事..../////////////////////////////////////////////////////////////////////////////////
void CUser::SelectData()
{
_RecordsetPtr rs; //MSDN 还找不到这东西_RecordsetPtr
_bstr_t bt;
HRESULT hr;
CString str;
bt=(_bstr_t)"SELECT * FROM D_USER WHERE USER_NAME = 'oioi' and USER_PASS = '0000'";
try{
hr=rs.CreateInstance (__uuidof(Recordset));
ASSERT(SUCCEEDED(hr));
//打开数据源
hr=rs->Open (bt,cn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
ASSERT(SUCCEEDED(hr));
rs->MoveFirst();//不会改...............
while( !rs->EndOfFile )
{
str=(char*)(_bstr_t)rs->Fields->GetItem("USER_NAME")->Value;
AfxMessageBox(str);
rs->MoveNext();
}
rs->Close();
}
catch(_com_error )
{
}
}
void CUser::SelectData()
{
_RecordsetPtr rs; //MSDN 还找不到这东西_RecordsetPtr
_bstr_t bt;
HRESULT hr;
CString str;
bt=(_bstr_t)"SELECT * FROM D_USER WHERE USER_NAME = 'oioi' and USER_PASS = '0000'";
try{
hr=rs.CreateInstance (__uuidof(Recordset));
ASSERT(SUCCEEDED(hr));
//打开数据源
hr=rs->Open (bt,cn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
ASSERT(SUCCEEDED(hr));
rs->MoveFirst();//不会改...............
while( !rs->EndOfFile )
{
str=(char*)(_bstr_t)rs->Fields->GetItem("USER_NAME")->Value;
AfxMessageBox(str);
rs->MoveNext();
}
rs->Close();
}
catch(_com_error )
{
}
}
str=(char*)(_bstr_t)rs->Fields->GetItem("USER_NAME")->Value;有谁会的能不能详细点....
void CUser::SelectData()
{
_RecordsetPtr rs;
_bstr_t bt;
HRESULT hr;
CString str; bt=(_bstr_t)"SELECT * FROM D_USER WHERE USER_NAME = 'はるおくん' and USER_PASS = '0000'";
try{
hr=rs.CreateInstance (__uuidof(Recordset));
ASSERT(SUCCEEDED(hr));
//打开数据源
hr=rs->Open (bt,cn.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
ASSERT(SUCCEEDED(hr));
if ( !rs->BOF )
{
str=(char*)(_bstr_t)rs->Fields->GetItem("USER_NAME")->Value;
str+= "---";
str+=(char*)(_bstr_t)rs->Fields->GetItem("USER_PASS")->Value;
AfxMessageBox(str);
}
else
AfxMessageBox("NULL");
rs->Close();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}