📄 mydatabase.cpp
字号:
ASSERT(FALSE);
retcode = -1;
break;
}
if(retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
{
SQLCHAR SqlState[6],Msg[SQL_MAX_MESSAGE_LENGTH];
SQLINTEGER NativeError;
SQLSMALLINT n,MsgLen;
SQLRETURN retcode2;
n = 1;
CString strMsg;
while ((retcode2 = SQLGetDiagRec(SQL_HANDLE_STMT, hstmt, n, SqlState, &NativeError,Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA)
{
strMsg=Msg;
AfxMessageBox(strMsg);
n++;
}
return;
}
}
}
/*
The following functions set data for each input parameter,
or get data from each output parameter.
There is no tranformation between different types,
so the data type and the parameter type must be equal.
*/
void CMyDatabase::SetParam_Bool(UINT nParamId,bool bParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_BIT)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_bVal = bParamValue;
}
void CMyDatabase::SetParam_Char(UINT nParamId,char chParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_TINYINT)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_chVal = chParamValue;
}
void CMyDatabase::SetParam_Short(UINT nParamId,short iParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_SMALLINT)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_iVal = iParamValue;
}
void CMyDatabase::SetParam_Long(UINT nParamId,long nParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_INTEGER)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_lVal = nParamValue;
}
void CMyDatabase::SetParam_Float(UINT nParamId,float fltParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_REAL)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_fltVal = fltParamValue;
}
void CMyDatabase::SetParam_Double(UINT nParamId,double dblParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_DOUBLE && m_mapParam[nParamId].m_nDataType != SQL_DECIMAL
&& m_mapParam[nParamId].m_nDataType != SQL_NUMERIC && m_mapParam[nParamId].m_nDataType != SQL_FLOAT)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_dblVal = dblParamValue;
}
void CMyDatabase::SetParam_DateTime(UINT nParamId,TIMESTAMP_STRUCT dtParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_TIMESTAMP && m_mapParam[nParamId].m_nDataType != SQL_TYPE_TIMESTAMP
&& m_mapParam[nParamId].m_nDataType != SQL_DATE && m_mapParam[nParamId].m_nDataType != SQL_TYPE_DATE)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_dtVal.year = dtParamValue.year;
m_mapParam[nParamId].m_dtVal.month = dtParamValue.month;
m_mapParam[nParamId].m_dtVal.day = dtParamValue.day;
m_mapParam[nParamId].m_dtVal.hour = dtParamValue.hour;
m_mapParam[nParamId].m_dtVal.minute = dtParamValue.minute;
m_mapParam[nParamId].m_dtVal.second = dtParamValue.second;
m_mapParam[nParamId].m_dtVal.fraction = dtParamValue.fraction;
}
void CMyDatabase::SetParam_String(UINT nParamId,CString strParamValue)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_CHAR && m_mapParam[nParamId].m_nDataType != SQL_VARCHAR
&& m_mapParam[nParamId].m_nDataType != SQL_WCHAR && m_mapParam[nParamId].m_nDataType != SQL_WVARCHAR)
{
ASSERT(FALSE);
return;
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
m_mapParam[nParamId].m_strVal = strParamValue;
}
bool CMyDatabase::GetParam_Bool(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_BIT)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_bVal;
}
char CMyDatabase::GetParam_Char(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_TINYINT)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_chVal;
}
short CMyDatabase::GetParam_Short(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_SMALLINT)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_iVal;
}
long CMyDatabase::GetParam_Long(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_INTEGER)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_lVal;
}
float CMyDatabase::GetParam_Float(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_REAL)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_fltVal;
}
double CMyDatabase::GetParam_Double(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_DOUBLE && m_mapParam[nParamId].m_nDataType != SQL_DECIMAL
&& m_mapParam[nParamId].m_nDataType != SQL_NUMERIC && m_mapParam[nParamId].m_nDataType != SQL_FLOAT)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_dblVal;
}
TIMESTAMP_STRUCT CMyDatabase::GetParam_DateTime(UINT nParamId)
{
ASSERT(nParamId>=0);
ASSERT(nParamId<m_nParams);
if(m_mapParam[nParamId].m_nDataType != SQL_TIMESTAMP && m_mapParam[nParamId].m_nDataType != SQL_TYPE_TIMESTAMP
&& m_mapParam[nParamId].m_nDataType != SQL_DATE && m_mapParam[nParamId].m_nDataType != SQL_TYPE_DATE)
{
ASSERT(FALSE);
}
if(m_mapParam[nParamId].m_nColType != SQL_PARAM_OUTPUT && m_mapParam[nParamId].m_nColType != SQL_PARAM_INPUT_OUTPUT)
ASSERT(FALSE);
return m_mapParam[nParamId].m_dtVal;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -