⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drvinfo.cpp

📁 快速SQL交互工具
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
	_T("Convert()"),    // conversion
	_T("Abs()"),        // numeric
	_T("Acos()"),
	_T("Asin()"),
	_T("Atan()"),
	_T("Atan2()"),
	_T("Ceiling()"),
	_T("Cos()"),
	_T("Cot()"),
	_T("Degrees()"),
	_T("Exp()"),
	_T("Floor()"),
	_T("Log()"),
	_T("Log10()"),
	_T("Mod()"),
	_T("Pi()"),
	_T("Power()"),
	_T("Radians()"),
	_T("Rand()"),
	_T("Round()"),
	_T("Sign()"),
	_T("Sin()"),
	_T("Sqrt()"),
	_T("Tan()"),
	_T("Truncate()"),
	_T("Ascii()"),
	_T("Char()"),
	_T("Concat()"),
	_T("Difference()"),
	_T("Insert()"),
	_T("LCase()"),
	_T("Left()"),
	_T("Lenght()"),
	_T("Locate()"),
	_T("Locate2()"),
	_T("LTrim()"),
	_T("Repeat()"),
	_T("Replace()"),
	_T("Right()"),
	_T("RTrim()"),
	_T("Soundex()"),
	_T("Space()"),
	_T("Substring()"),
	_T("UCase()"),
	_T("DBName()"),
	_T("IfNull()"),
	_T("UserName()"),
	_T("CurDate()"),
	_T("CurTime()"),
	_T("DayName()"),
	_T("DayOfMonth()"),
	_T("DayOfWeek()"),
	_T("DayOfYear()"),
	_T("Hour()"),
	_T("Minute()"),
	_T("Month()"),
	_T("MonthName()"),
	_T("Now()"),
	_T("Quarter()"),
	_T("Second()"),
	_T("TimeStampAdd()"),
	_T("TimeStampDiff()"),
	_T("Week()"),
	_T("Year()")
};

LPCTSTR CFunctions::m_szSqlCategories[] =
{
	_T("Conversion"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("Numeric"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("String"),
	_T("System"),
	_T("System"),
	_T("System"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate"),
	_T("TimeDate")
};

LPCTSTR CFunctions::m_szFunctions[] =
{
	_T("SQLAllocConnect"),
	_T("SQLAllocEnv"),
	_T("SQLAllocStmt"),
	_T("SQLBindCol"),
	_T("SQLCancel"),
	_T("SQLColAttributes"),
	_T("SQLConnect"),
	_T("SQLDescribeCol"),
	_T("SQLDisconnect"),
	_T("SQLError"),
	_T("SQLExecDirect"),
	_T("SQLExecute"),
	_T("SQLFetch"),
	_T("SQLFreeConnect"),
	_T("SQLFreeEnv"),
	_T("SQLFreeStmt"),
	_T("SQLGetCursorName"),
	_T("SQLNumResultCols"),
	_T("SQLPrepare"),
	_T("SQLRowCount"),
	_T("SQLSetCursorName"),
	_T("SQLSetParam"),
	_T("SQLTransact"),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T("SQLColumns"),
	_T("SQLDriverConnect"),
	_T("SQLGetConnectOption"),
	_T("SQLGetData"),
	_T("SQLGetFunctions"),
	_T("SQLGetInfo"),
	_T("SQLGetStmtOption"),
	_T("SQLGetTypeInfo"),
	_T("SQLParamData"),
	_T("SQLPutData"),
	_T("SQLSetConnectOption"),
	_T("SQLSetStmtOption"),
	_T("SQLSpecialColumns"),
	_T("SQLStatistics"),
	_T("SQLTables"),
	_T("SQLBrowseConnect"),
	_T("SQLColumnPrivileges"),
	_T("SQLDataSources"),
	_T("SQLDescribeParam"),
	_T("SQLExtendedFetch"),
	_T("SQLForeignKeys"),
	_T("SQLMoreResults"),
	_T("SQLNativeSql"),
	_T("SQLNumParams"),
	_T("SQLParamOptions"),
	_T("SQLPrimaryKeys"),
	_T("SQLProcedureColumns"),
	_T("SQLProcedures"),
	_T("SQLSetPos"),
	_T("SQLSetScrollOptions"),
	_T("SQLTablePrivileges"),
	_T("SQLDrivers"),
	_T("SQLBindParameter")
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
	_T(""),
};

CFunctions::CFunctions(CDatabase* pDatabase)
 : CMyPage(pDatabase, CFunctions::IDD)
{
	//{{AFX_DATA_INIT(CFunctions)
	//}}AFX_DATA_INIT

	m_bSort = true;
}

CFunctions::~CFunctions()
{
}

void CFunctions::DumpToFile(CStdioFile& file)
{
	if (m_pDatabase->IsOpen())
	{
		int     i,j;
		CString string;
		CString padString;
		UWORD   aFunctions[100];
		SDWORD  value;

		file.WriteString(_T("ODBC API Functions\n------------------\n"));
		::SQLGetFunctions(m_pDatabase->m_hdbc,
				SQL_API_ALL_FUNCTIONS,aFunctions);
		for (i = 0; i < SQL_NUM_FUNCTIONS; i++)
		{
			if (aFunctions[i + 1])
				string.Format(_T("%s - Supported\n"),m_szFunctions[i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szFunctions[i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szFunctions[i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		for (i = 0; i < SQL_EXT_API_LAST - SQL_EXT_API_START + 1; i++)
		{
			if (aFunctions[i + SQL_EXT_API_START])
				string.Format(_T("%s - Supported\n"),m_szFunctions[i + SQL_EXT_API_START - 1]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szFunctions[i + SQL_EXT_API_START - 1]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szFunctions[i + SQL_EXT_API_START - 1]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));

		file.WriteString(_T("SQL Conversion Functions\n------------------------\n"));
		value = SQLGetInfoLong(SQL_CONVERT_FUNCTIONS);
		for (i = 0; i < NUM_CONVERSIONS; i++)
		{
			if (value & m_dwConversionsMasks[i])
				string.Format(_T("%s - Supported\n"),m_szSqlFunctions[CONVERSIONS_START + i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szSqlFunctions[CONVERSIONS_START + i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szSqlFunctions[CONVERSIONS_START + i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));

		file.WriteString(_T("SQL Numeric Functions\n---------------------\n"));
		value = SQLGetInfoLong(SQL_NUMERIC_FUNCTIONS);
		for (i = 0; i < NUM_NUMERICS; i++)
		{
			if (value & m_dwNumericMasks[i])
				string.Format(_T("%s - Supported\n"),m_szSqlFunctions[NUMERIC_START + i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szSqlFunctions[NUMERIC_START + i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szSqlFunctions[NUMERIC_START + i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));

		file.WriteString(_T("SQL String Functions\n--------------------\n"));
		value = SQLGetInfoLong(SQL_STRING_FUNCTIONS);
		for (i = 0; i < NUM_STRINGS; i++)
		{
			if (value & m_dwStringsMasks[i])
				string.Format(_T("%s - Supported\n"),m_szSqlFunctions[STRINGS_START + i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szSqlFunctions[STRINGS_START + i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szSqlFunctions[STRINGS_START + i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));

		file.WriteString(_T("SQL System Functions\n--------------------\n"));
		value = SQLGetInfoLong(SQL_SYSTEM_FUNCTIONS);
		for (i = 0; i < NUM_SYSTEMS; i++)
		{
			if (value & m_dwSystemsMasks[i])
				string.Format(_T("%s - Supported\n"),m_szSqlFunctions[SYSTEMS_START + i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szSqlFunctions[SYSTEMS_START + i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szSqlFunctions[SYSTEMS_START + i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));

		file.WriteString(_T("SQL Time/Date Functions\n-----------------------\n"));
		value = SQLGetInfoLong(SQL_TIMEDATE_FUNCTIONS);
		for (i = 0; i < NUM_TIMEDATES; i++)
		{
			if (value & m_dwTimeDatesMasks[i])
				string.Format(_T("%s - Supported\n"),m_szSqlFunctions[TIMEDATES_START + i]);
			else
				string.Format(_T("%s - Not Supported\n"),m_szSqlFunctions[TIMEDATES_START + i]);
			padString = _T("");
			int nLimit = 21 - lstrlen(m_szSqlFunctions[TIMEDATES_START + i]) / sizeof(TCHAR);
			if (nLimit > 0)
			{
				for (j = 0; j < nLimit; j++)
					padString += ' ';
				file.WriteString(padString);
			}
			file.WriteString(string);
		}
		file.WriteString(_T("\n"));
	}
}

void CFunctions::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFunctions)
	DDX_Control(pDX, IDC_SQL_FUNCTIONS, m_SqlListControl);
	DDX_Control(pDX, IDC_API_FUNCTIONS, m_ApiListControl);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFunctions, CPropertyPage)
	//{{AFX_MSG_MAP(CFunctions)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_SQL_FUNCTIONS, OnColumnclickSqlFunctions)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFunctions message handlers

void CFunctions::OnNewDSN()
{
	if (::IsWindow(m_hWnd))
	{
		UWORD       aFunctions[100];
		BOOL        bOpen = m_pDatabase->IsOpen();

		SDWORD      value;
		int         nNewItem;

		m_ApiListControl.DeleteAllItems();
		if (bOpen)
			::SQLGetFunctions(m_pDatabase->m_hdbc,
				SQL_API_ALL_FUNCTIONS,aFunctions);
		for (int i = 0; i < SQL_NUM_FUNCTIONS; i++)
		{
			if (bOpen && aFunctions[i + 1])
				m_ApiListControl.InsertItem(i,m_szFunctions[i],1);
			else
				m_ApiListControl.InsertItem(i,m_szFunctions[i],0);
		}

		for (i = 0; i < SQL_EXT_API_LAST - SQL_EXT_API_START + 1; i++)
		{
			if (bOpen && aFunctions[i+SQL_EXT_API_START])
				m_ApiListControl.InsertItem(i+SQL_NUM_FUNCTIONS,
					m_szFunctions[i+SQL_EXT_API_START-1],1);
			else
				m_ApiListControl.InsertItem(i+SQL_NUM_FUNCTIONS,
					m_szFunctions[i+SQL_EXT_API_START-1],0);
		}

		m_SqlListControl.DeleteAllItems();

		// conversion function
		if (bOpen)
			value = SQLGetInfoLong(SQL_CONVERT_FUNCTIONS);
		for (i = 0; i < NUM_CONVERSIONS; i++)
		{
			if (bOpen && (value & m_dwConversionsMasks[i]))
				nNewItem = m_SqlListControl.InsertItem(CONVERSIONS_START + i,
					m_szSqlFunctions[CONVERSIONS_START + i],1);
			else
				nNewItem = m_SqlListControl.InsertItem(CONVERSIONS_START + i,
					m_szSqlFunctions[CONVERSIONS_START + i],0);
			m_SqlListControl.SetItem(nNewItem,1,LVIF_TEXT,
				m_szSqlCategories[CONVERSIONS_START + i],0,0,0,0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -