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

📄 database.cpp

📁 一本非常好的关于VC方面的书
💻 CPP
字号:
#include "Database.h"

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "AdoEOF")


bool FullVersionTable(HWND hwndVersionTable, LPTSTR szAbtFileName, LPTSTR szAncientBookName)
{
	int   iRecordNumb = 0;
	TCHAR szSql[1024] = {0};
	TCHAR szStroe[128] = {0};
	TCHAR szLatestVersion[256] = {0};

	CoInitialize(NULL);

	_ConnectionPtr pConnection = NULL;
	pConnection.CreateInstance(__uuidof(Connection));
	pConnection->CommandTimeout = 8;
	pConnection->ConnectionString = (_bstr_t)szAbtFileName;
	pConnection->Provider = TEXT("Microsoft.Jet.OLEDB.4.0");
	try
	{
		pConnection->Open(pConnection->ConnectionString, 
			                "", "", adConnectUnspecified);
	}
	catch(_com_error e)
	{
	  if(GetSystemDefaultLCID() == 0x0804)
		{
			MessageBox(NULL, TEXT("单捞鸥海捞胶 凯扁 坷幅!"), 0, 0);
		}
		else
		{
			MessageBox(NULL, TEXT("Failed to open database!"), 0, 0);
		}
		
		return false;
	}

	_RecordsetPtr pRecordset = NULL;
	pRecordset.CreateInstance(__uuidof(Recordset));
	_stprintf(szSql, TEXT("SELECT VersionD.Version, VersionM.StoreName FROM VersionD LEFT OUTER JOIN VersionM ON VersionD.Store=VersionM.Store WHERE VersionD.Name=\'%s\' ORDER BY VersionD.Version"), szAncientBookName);
	try
	{
		pRecordset->Open(szSql, (IDispatch *)pConnection, adOpenDynamic,
			               adLockOptimistic, adModeUnknown);
	}
	catch(_com_error e)
	{
	  if(GetSystemDefaultLCID() == 0x0804)
		{
			MessageBox(NULL, TEXT("单捞鸥海捞胶 炼雀 坷幅!"), 0, 0);
		}
		else
		{
			MessageBox(NULL, TEXT("Failed to get data!"), 0, 0);
		}
		
		return false;
	}

  if(pRecordset->AdoEOF)
  {
    if(GetSystemDefaultLCID() == 0x0804)
		{
			MessageBox(NULL, TEXT("涝仿茄 氓捞抚篮 吝惫扁夯绊利海捞胶俊 殿废等 氓捞抚俊辑 何钦登绰 巴阑 茫阑 荐 绝嚼聪促!"), 0, 0);
		}
		else
		{
			MessageBox(NULL, TEXT("The bookname inputed is invalid, please search with booknames in AncientBook!"), 0, 0);
		}
		
    return false;
  }
  
	while(!pRecordset->AdoEOF)
	{
		variant_t var;

		var = pRecordset->GetCollect(TEXT("Version"));
		if(var.vt != VT_NULL)
		{
			LVITEM lvItem;

			lvItem.mask     = LVIF_TEXT;
			lvItem.iItem    = iRecordNumb;
			lvItem.iSubItem = 0;
			if(_tcscmp(szLatestVersion, (LPTSTR)(_bstr_t)var))
			{
				_tcscpy(szLatestVersion, (LPTSTR)(_bstr_t)var);
				lvItem.pszText = szLatestVersion;
			}
			else
			{
				lvItem.pszText = TEXT("");
			}
			ListView_InsertItem(hwndVersionTable, &lvItem);
		}

		var = pRecordset->GetCollect(TEXT("StoreName"));
		if(var.vt != VT_NULL)
		{
			_tcscpy(szStroe, (LPTSTR)(_bstr_t)var);
			ListView_SetItemText(hwndVersionTable, iRecordNumb, 1, szStroe);
		}

		iRecordNumb++;
		pRecordset->MoveNext();
	}

	if(pRecordset->State)
	{
		pRecordset->Close();
		pRecordset = NULL;
	}
	if(pConnection->State)
	{
		pConnection->Close();
		pConnection = NULL;
	}
	
	CoUninitialize();
	return true;
}


bool GetVersionDetail(LPTSTR szAbtFileName, VERSION_DETAIL *versionDetail)
{
	TCHAR szSql[1024] = {0};

	CoInitialize(NULL);

	_ConnectionPtr pConnection = NULL;
	pConnection.CreateInstance(__uuidof(Connection));
	pConnection->CommandTimeout = 8;
	pConnection->ConnectionString = (_bstr_t)szAbtFileName;
	pConnection->Provider = TEXT("Microsoft.Jet.OLEDB.4.0");
	try
	{
		pConnection->Open(pConnection->ConnectionString,
			                "", "", adConnectUnspecified);
	}
	catch(_com_error e)
	{
		return false;
	}

	_RecordsetPtr pRecordset = NULL;
	pRecordset.CreateInstance(__uuidof(Recordset));
	_stprintf(szSql, TEXT("SELECT VersionD.VersionName, VersionD.Author, VersionD.VersionNameExpand, VersionD.Hint FROM VersionD LEFT OUTER JOIN VersionM ON VersionD.Store=VersionM.Store WHERE VersionD.Name=\'%s\' AND VersionD.Version=\'%s\' AND VersionM.StoreName=\'%s\'"), 
		        versionDetail->szBookName_Ancient, versionDetail->szVersion, versionDetail->szStore);
	try
	{
		pRecordset->Open(szSql, (IDispatch *)pConnection, adOpenDynamic, 
			               adLockOptimistic, adModeUnknown);
	}
	catch(_com_error e)
	{
		return false;
	}

	variant_t var;
	var = pRecordset->GetCollect(TEXT("VersionName"));
	if(var.vt != VT_NULL)
	{
		_tcscpy(versionDetail->szBookName_Version, (LPTSTR)(_bstr_t)var);
	}
	else
	{
		return false;
	}

	var = pRecordset->GetCollect(TEXT("Author"));
	if(var.vt != VT_NULL)
	{
		_tcscpy(versionDetail->szAuthor, (LPTSTR)(_bstr_t)var);
	}
	else
	{
		return false;
	}
		
	var = pRecordset->GetCollect(TEXT("Hint"));
	if(var.vt != VT_NULL)
	{
		_tcscpy(versionDetail->szHint, (LPTSTR)(_bstr_t)var);
	}
	else
	{
        _tcscpy(versionDetail->szHint, TEXT(""));
		return false;
	}
	
  var = pRecordset->GetCollect(TEXT("VersionNameExpand"));
	if(var.vt != VT_NULL)
	{
		_tcscpy(versionDetail->szExpand, (LPTSTR)(_bstr_t)var);
	}
	else
	{
		_tcscpy(versionDetail->szExpand, TEXT(""));
		return false;
	}	

  if(pRecordset->State)
	{
		pRecordset->Close();
		pRecordset = NULL;
	}
	if(pConnection->State)
	{
		pConnection->Close();
		pConnection = NULL;
	}

	CoUninitialize();
	return true;
}




⌨️ 快捷键说明

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