📄 01_9_14_7.asp.html
字号:
LPCSTR pszTableOwner = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableName = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableType = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
UINT nOpenType = forwardOnly);</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableQualifier;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableOwner;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableName;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableType;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strRemarks;</td></tr></table><table width=100% ><tr><td class=a14>
virtual void DoFieldExchange(CFieldExchange*);</td></tr></table><table width=100% ><tr><td class=a14>
};</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
class CColumns : public CRecordset</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
virtual CString GetDefaultConnect() { return ""; }</td></tr></table><table width=100% ><tr><td class=a14>
virtual CString GetDefaultSQL() { return ""; }</td></tr></table><table width=100% ><tr><td class=a14>
public:</td></tr></table><table width=100% ><tr><td class=a14>
CColumns(CDatabase* pDatabase);</td></tr></table><table width=100% ><tr><td class=a14>
BOOL Open(LPCSTR pszTableQualifier = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableOwner = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableName = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszColumnName = NULL,</td></tr></table><table width=100% ><tr><td class=a14>
UINT nOpenType = forwardOnly);</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableQualifier;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableOwner;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTableName;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strColumnName;</td></tr></table><table width=100% ><tr><td class=a14>
int m_nDataType;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strTypeName;</td></tr></table><table width=100% ><tr><td class=a14>
long m_nPrecision;</td></tr></table><table width=100% ><tr><td class=a14>
long m_nLength; </td></tr></table><table width=100% ><tr><td class=a14>
int m_nScale;</td></tr></table><table width=100% ><tr><td class=a14>
int m_nRadix;</td></tr></table><table width=100% ><tr><td class=a14>
int m_fNullable;</td></tr></table><table width=100% ><tr><td class=a14>
CString m_strRemarks;</td></tr></table><table width=100% ><tr><td class=a14>
virtual void DoFieldExchange(CFieldExchange*);</td></tr></table><table width=100% ><tr><td class=a14>
};</td></tr></table><table width=100% ><tr><td class=a14>
BOOL CColumns::Open(LPCSTR pszTableQualifier,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableOwner,LPCSTR pszTableName,LPCSTR pszColumnName,</td></tr></table><table width=100% ><tr><td class=a14>
UINT nOpenType)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
RETCODE nRetCode;</td></tr></table><table width=100% ><tr><td class=a14>
UWORD bFunctionExists;</td></tr></table><table width=100% ><tr><td class=a14>
//检验是否支持SQLColumns函数 </td></tr></table><table width=100% ><tr><td class=a14>
AFX_SQL_SYNC(::SQLGetFunctions(m_pDatabase->m_hdbc,</td></tr></table><table width=100% ><tr><td class=a14>
SQL_API_SQLCOLUMNS,&bFunctionExists));</td></tr></table><table width=100% ><tr><td class=a14>
if (!Check(nRetCode) || !bFunctionExists)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
if (!bFunctionExists)</td></tr></table><table width=100% ><tr><td class=a14>
TRACE(_T("SQLColumns 不支持\n"));</td></tr></table><table width=100% ><tr><td class=a14>
return FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
//设置缓冲区状态,分配语句句柄 </td></tr></table><table width=100% ><tr><td class=a14>
SetState(nOpenType,NULL,readOnly);</td></tr></table><table width=100% ><tr><td class=a14>
if (!AllocHstmt())</td></tr></table><table width=100% ><tr><td class=a14>
return FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
TRY</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
OnSetOptions(m_hstmt);</td></tr></table><table width=100% ><tr><td class=a14>
AllocStatusArrays();</td></tr></table><table width=100% ><tr><td class=a14>
// 调用ODBC的SQLColumns函数</td></tr></table><table width=100% ><tr><td class=a14>
AFX_ODBC_CALL(::SQLColumns(m_hstmt,</td></tr></table><table width=100% ><tr><td class=a14>
(UCHAR FAR*)pszTableQualifier,SQL_NTS,</td></tr></table><table width=100% ><tr><td class=a14>
(UCHAR FAR*)pszTableOwner,SQL_NTS,</td></tr></table><table width=100% ><tr><td class=a14>
(UCHAR FAR*)pszTableName,SQL_NTS,</td></tr></table><table width=100% ><tr><td class=a14>
(UCHAR FAR*)pszColumnName,SQL_NTS));</td></tr></table><table width=100% ><tr><td class=a14>
if (!Check(nRetCode))</td></tr></table><table width=100% ><tr><td class=a14>
ThrowDBException(nRetCode,m_hstmt);</td></tr></table><table width=100% ><tr><td class=a14>
// 分配内存,填写信息</td></tr></table><table width=100% ><tr><td class=a14>
AllocAndCacheFieldInfo();</td></tr></table><table width=100% ><tr><td class=a14>
AllocRowset();</td></tr></table><table width=100% ><tr><td class=a14>
MoveNext();</td></tr></table><table width=100% ><tr><td class=a14>
m_bBOF = m_bEOF;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
//异常信息的捕获</td></tr></table><table width=100% ><tr><td class=a14>
CATCH_ALL(e)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
Close();</td></tr></table><table width=100% ><tr><td class=a14>
THROW_LAST();</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
END_CATCH_ALL</td></tr></table><table width=100% ><tr><td class=a14>
return TRUE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
//获取记录集信息</td></tr></table><table width=100% ><tr><td class=a14>
void CColumns::DoFieldExchange(CFieldExchange* pFX)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
pFX->SetFieldType(CFieldExchange::outputColumn);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("TABLE_QUALIFIER"),m_strTableQualifier);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("TABLE_OWNER"),m_strTableOwner);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("TABLE_NAME"),m_strTableName);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("COLUMN_NAME"),m_strColumnName);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Int(pFX,_T("DATA_TYPE"),m_nDataType);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("TYPE_NAME"),m_strTypeName);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Long(pFX,_T("PRECISION"),m_nPrecision);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Long(pFX,_T("LENGTH"),m_nLength);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Int(pFX,_T("SCALE"),m_nScale);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Int(pFX,_T("RADIX"),m_nRadix);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Int(pFX,_T("NULLABLE"),m_fNullable);</td></tr></table><table width=100% ><tr><td class=a14>
RFX_Text(pFX,_T("REMARKS"),m_strRemarks);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
CColumns::CColumns(CDatabase* pDatabase): CRecordset(pDatabase)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableQualifier = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableOwner = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableName = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strColumnName = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_nDataType = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_strTypeName = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_nPrecision = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_nLength = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_nScale = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_nRadix = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_fNullable = 0;</td></tr></table><table width=100% ><tr><td class=a14>
m_strRemarks = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_nFields = 12;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
CTable::CTable(CDatabase* pDatabase): CRecordset(pDatabase)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableQualifier = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableOwner = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableName = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strTableType = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_strRemarks = _T("");</td></tr></table><table width=100% ><tr><td class=a14>
m_nFields = 5;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
BOOL CTable::Open(LPCSTR pszTableQualifier,</td></tr></table><table width=100% ><tr><td class=a14>
LPCSTR pszTableOwner,LPCSTR pszTableName,LPCSTR pszTableType,</td></tr></table><table width=100% ><tr><td class=a14>
UINT nOpenType)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
RETCODE nRetCode;</td></tr></table><table width=100% ><tr><td class=a14>
UWORD bFunctionExists;</td></tr></table><table width=100% ><tr><td class=a14>
//检验是否支持SQLTables 函数 </td></tr></table><table width=100% ><tr><td class=a14>
AFX_SQL_SYNC(::SQLGetFunctions(m_pDatabase->m_hdbc,</td></tr></table><table width=100% ><tr><td class=a14>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -