|
|
@@ -100,6 +100,133 @@ void CWxAdoImpl::SolveDBError( IN CONST DWORD &dwError, IN LPVOID pDBConn)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//template<typename T>
|
|
|
+//BOOL CWxAdoImpl::GetFiedValue(IN _RecordsetPtr rst, IN LPCTSTR lpFiedName, T &value)
|
|
|
+//{
|
|
|
+// typeid(value);
|
|
|
+// _variant_t var = rst->GetCollect(lpFiedName);
|
|
|
+ //switch(var.vt)
|
|
|
+ //{
|
|
|
+ //case VT_EMPTY:
|
|
|
+ // break;
|
|
|
+ //case VT_NULL:
|
|
|
+ // break;
|
|
|
+ //case VT_I2://2 byte signed int
|
|
|
+ // value = var.iVal;
|
|
|
+ // break;
|
|
|
+ //case VT_I4://4 byte signed int
|
|
|
+ // value = var.iVal;
|
|
|
+ // break;
|
|
|
+ //case VT_R4://4 byte real
|
|
|
+ // value = var.fltVal;
|
|
|
+ // break;
|
|
|
+ //case VT_R8://8 byte real
|
|
|
+ // value = var.dblVal;
|
|
|
+ // break;
|
|
|
+ //case VT_CY://currency
|
|
|
+ // break;
|
|
|
+ //case VT_DATE:
|
|
|
+ // {
|
|
|
+ // COleDateTime dt(var);
|
|
|
+ // value = dt.Format(_T("%Y-%m-%d %H:%M:%S"));
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ //case VT_BSTR://OLE Automation string
|
|
|
+ // value = _bstr_t(var.bstrVal);
|
|
|
+ // break;
|
|
|
+ //case VT_DISPATCH://IDispatch *
|
|
|
+ // break;
|
|
|
+ //case VT_ERROR://SCODE
|
|
|
+ // break;
|
|
|
+ //case VT_BOOL://True=-1, False=0
|
|
|
+ // value = var.boolVal;
|
|
|
+ // break;
|
|
|
+ //case VT_VARIANT://VARIANT *
|
|
|
+ // break;
|
|
|
+ //case VT_UNKNOWN://IUnknown *
|
|
|
+ // break;
|
|
|
+ //case VT_DECIMAL://16 byte fixed point
|
|
|
+ // break;
|
|
|
+ //case VT_RECORD://user defined type
|
|
|
+ // break;
|
|
|
+ //case VT_I1: // signed char
|
|
|
+ // value = var.pcVal;
|
|
|
+ // break;
|
|
|
+ //case VT_UI1://unsigned char
|
|
|
+ // value = var.bVal;
|
|
|
+ // break;
|
|
|
+ //case VT_UI2://unsigned short
|
|
|
+ // value = var.uiVal;
|
|
|
+ // break;
|
|
|
+ //case VT_UI4://unsigned long
|
|
|
+ // value = var.uiVal;
|
|
|
+ // break;
|
|
|
+ //case VT_I8://signed 64-bit int
|
|
|
+ // value = var.lVal;
|
|
|
+ // break;
|
|
|
+ //case VT_UI8://unsigned 64-bit int
|
|
|
+ // value = var.ulVal;
|
|
|
+ // break;
|
|
|
+ //case VT_INT://signed machine int
|
|
|
+ // value = var.intVal;
|
|
|
+ // break;
|
|
|
+ //case VT_UINT://unsigned machine int
|
|
|
+ // value = var.uintVal;
|
|
|
+ // break;
|
|
|
+ //case VT_INT_PTR://signed machine register size width
|
|
|
+ // break;
|
|
|
+ //case VT_UINT_PTR://unsigned machine register size width
|
|
|
+ // break;
|
|
|
+ //case VT_VOID://C style void
|
|
|
+ // break;
|
|
|
+ //case VT_HRESULT://Standard return type
|
|
|
+ // break;
|
|
|
+ //case VT_PTR://pointer type
|
|
|
+ // break;
|
|
|
+ //case VT_SAFEARRAY://(use VT_ARRAY in VARIANT)
|
|
|
+ // break;
|
|
|
+ //case VT_CARRAY://C style array
|
|
|
+ // break;
|
|
|
+ //case VT_USERDEFINED://user defined type
|
|
|
+ // break;
|
|
|
+ //case VT_LPSTR://null terminated string
|
|
|
+ // break;
|
|
|
+ //case VT_LPWSTR://wide null terminated string
|
|
|
+ // break;
|
|
|
+ //case VT_FILETIME://FILETIME
|
|
|
+ // break;
|
|
|
+ //case VT_BLOB://Length prefixed bytes
|
|
|
+ // break;
|
|
|
+ //case VT_STREAM://Name of the stream follows
|
|
|
+ // break;
|
|
|
+ //case VT_STORAGE://Name of the storage follows
|
|
|
+ // break;
|
|
|
+ //case VT_STREAMED_OBJECT://Stream contains an object
|
|
|
+ // break;
|
|
|
+ //case VT_STORED_OBJECT://Storage contains an object
|
|
|
+ // break;
|
|
|
+ //case VT_VERSIONED_STREAM://Stream with a GUID version
|
|
|
+ // break;
|
|
|
+ //case VT_BLOB_OBJECT://Blob contains an object
|
|
|
+ // break;
|
|
|
+ //case VT_CF://Clipboard format
|
|
|
+ // break;
|
|
|
+ //case VT_CLSID://A Class ID
|
|
|
+ // break;
|
|
|
+ //case VT_VECTOR://simple counted array
|
|
|
+ // break;
|
|
|
+ //case VT_ARRAY://SAFEARRAY*
|
|
|
+ // break;
|
|
|
+ //case VT_BYREF://void* for local use
|
|
|
+ // break;
|
|
|
+ //case VT_BSTR_BLOB://Reserved for system use
|
|
|
+ // break;
|
|
|
+ //default:
|
|
|
+ // value = var.iVal;
|
|
|
+ //}
|
|
|
+// return TRUE;
|
|
|
+//}
|
|
|
+
|
|
|
/************************************************************************/
|
|
|
/* 函数:[9/25/2016 IT];
|
|
|
/* 描述:;
|
|
|
@@ -167,19 +294,19 @@ BOOL CWxAdoImpl::ExecuteSQL( IN LPCTSTR lpExcuteSQL, IN CONST DWORD &dwTimeOut /
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- if ( lpExcuteSQL == NULL )
|
|
|
+ if ( lpExcuteSQL == NULL || pObj == NULL )
|
|
|
return FALSE;
|
|
|
|
|
|
pObj->pCommand->CommandText = _bstr_t(lpExcuteSQL);
|
|
|
// 执行SQL语句,返回记录集
|
|
|
pObj->pCommand->Execute(NULL, NULL, adCmdText);
|
|
|
}
|
|
|
- catch (CDBException* e)
|
|
|
+ catch (_com_error &e)
|
|
|
{
|
|
|
- //Global::WriteTextLog(_T("%s,%d,%s:%s"), __FILE__, __LINE__, __FUNCTION__, e->m_strError);
|
|
|
- Global::WriteTextLog(_T("%s\n%s"), lpExcuteSQL, e->m_strError);
|
|
|
- SolveDBError(e->m_nRetCode, pObj);
|
|
|
- e->Delete();
|
|
|
+ _bstr_t bstrSource(e.Source());
|
|
|
+ _bstr_t bstrDescription(e.Description());
|
|
|
+ SolveDBError(e.Error(), pObj);
|
|
|
+ Global::WriteTextLog(_T("SQL出错:%08lx,%s,%s,%s"), e.Error(), e.ErrorMessage(), (TCHAR*)bstrSource, (TCHAR*)bstrDescription);
|
|
|
return FALSE;
|
|
|
}
|
|
|
|
|
|
@@ -201,9 +328,72 @@ BOOL CWxAdoImpl::ExecuteSQL( IN LPCTSTR lpExcuteSQL, IN CONST DWORD &dwTimeOut /
|
|
|
/* 日期:;
|
|
|
/* 内容:;
|
|
|
/************************************************************************/
|
|
|
-BOOL CWxAdoImpl::IsUserExist( IN LPCTSTR lpStudioID, IN LPCTSTR lpAccount, IN LPCTSTR lpPassword, OUT LPVOID lpOutUserInfo,IN CONST DWORD &dwTimeOut /* = 3000 */ )
|
|
|
+BOOL CWxAdoImpl::IsUserExist( IN LPCTSTR lpPhone, IN LPCTSTR lpPassword, OUT LPVOID lpOutUserInfo,IN CONST DWORD &dwTimeOut /* = 3000 */ )
|
|
|
{
|
|
|
-
|
|
|
+ GETDBPTR(dwTimeOut);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if ( lpPhone == NULL || lpPassword == NULL || pObj == NULL)
|
|
|
+ return FALSE;
|
|
|
+
|
|
|
+ CString strSql = _T("");
|
|
|
+ strSql.Format(_T("select csr_id,csr_name,csr_phone,csr_gender,csr_password,csr_old_phone,csr_vcode,vcode_expiry_time,enable from customer where csr_phone = %s"), lpPhone);//用于是否转相片;
|
|
|
+ pObj->pCommand->CommandText = _bstr_t(strSql);
|
|
|
+ // 执行SQL语句,返回记录集
|
|
|
+ _RecordsetPtr rst = pObj->pCommand->Execute(NULL, NULL, adCmdText);
|
|
|
+ while(!rst->adoEOF)
|
|
|
+ {
|
|
|
+ #ifdef _DEBUG
|
|
|
+ CString strCustomerId;
|
|
|
+ strCustomerId = rst->GetCollect(_T("csr_id")).bstrVal;
|
|
|
+ OutputDebugString(strCustomerId);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strCustomerName;
|
|
|
+ strCustomerName = rst->GetCollect(_T("csr_name")).bstrVal;
|
|
|
+ OutputDebugString(strCustomerName);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strPhone;
|
|
|
+ strPhone = rst->GetCollect(_T("csr_phone")).bstrVal;
|
|
|
+ OutputDebugString(strPhone);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ BOOL bGender;
|
|
|
+ bGender = rst->GetCollect(_T("csr_gender")).boolVal == VARIANT_TRUE ? TRUE : FALSE;
|
|
|
+ OutputDebugString(bGender ? _T("男") : _T("女"));OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strPassword;
|
|
|
+ strPassword = rst->GetCollect(_T("csr_password")).bstrVal;
|
|
|
+ OutputDebugString(strPassword);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strOldPhone;
|
|
|
+ strOldPhone = rst->GetCollect(_T("csr_old_phone")).bstrVal;
|
|
|
+ OutputDebugString(strOldPhone);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strVCode;
|
|
|
+ strVCode = rst->GetCollect(_T("csr_vcode")).bstrVal;
|
|
|
+ OutputDebugString(strVCode);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ CString strDate;
|
|
|
+ COleDateTime dt(rst->GetCollect(_T("vcode_expiry_time")));
|
|
|
+ strVCode = dt.Format(_T("%Y-%m-%d %H:%M:%S"));
|
|
|
+ OutputDebugString(strDate);OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ BOOL bEnable;
|
|
|
+ bEnable = rst->GetCollect(_T("enable")).boolVal == VARIANT_TRUE ? TRUE : FALSE;
|
|
|
+ OutputDebugString(bEnable ? _T("启用") : _T("禁用"));OutputDebugString(_T("\n"));
|
|
|
+
|
|
|
+ #endif
|
|
|
+ rst->MoveNext();
|
|
|
+ }
|
|
|
+ rst->Close();
|
|
|
+ }
|
|
|
+ catch (_com_error &e)
|
|
|
+ {
|
|
|
+ _bstr_t bstrSource(e.Source());
|
|
|
+ _bstr_t bstrDescription(e.Description());
|
|
|
+ SolveDBError(e.Error(), pObj);
|
|
|
+ Global::WriteTextLog(_T("SQL出错:%08lx,%s,%s,%s"), e.Error(), e.ErrorMessage(), (TCHAR*)bstrSource, (TCHAR*)bstrDescription);
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
|
|
|
return TRUE;
|
|
|
}
|