cdbexpalias.h

来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· C头文件 代码 · 共 124 行

H
124
字号
// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_CDBEXPALIAS_3C36949A00CB_INCLUDED
#define _INC_CDBEXPALIAS_3C36949A00CB_INCLUDED

#include "CDBTreeNode.h"

#include "IniFile.h"

class CStringList;

//##ModelId=3C36949A00CB
#include "CDBExpDatabase.h"	// Added by ClassView
//##ModelId=3C36949A00CB
class CDBExpAlias 
: public CDBTreeNode
{
	DECLARE_DYNAMIC(CDBExpAlias)
public:
	//##ModelId=3C4129660000
	char * get_AliasName()
	{
		return m_strAliasName;
	}
	//##ModelId=3C36957A0037
	void LoadAlias();

	//##ModelId=3C369589002F
	void SaveAlias();

	//##ModelId=3C369C4003CA
	CDBExpAlias(CIniFile *pIniFile, const CString& szAliasName);

	//##ModelId=3C369C59023F
	virtual ~CDBExpAlias();

	//##ModelId=3C369CE501D2
	const CString& GetConnectString() const;

/*	用来给这个Alias设置一个连接的字符串。它会将这个参数值传?
	给 m_strConnectString
	//##ModelId=3C3885980218
*/	void SetConnectString(const CString& szConnStr);

/*	默认的情况下是删除当前的别名,您也可以指出要删除的别名的
	名称。
	因为别名的名称是用来对于一个别名作唯一标识的。
	如果删除别名不成功,那么就会有异常出现
	//##ModelId=3C3885990043
*/	void DeleteAlias(const CString& szAliasName = _T(""));

/*	生成一个新的数据库别名,它不能与现有的数据库的别名想重复?
	否则将产生CAliasException::Duplicate错误。
	//##ModelId=3C38859900C5
*/	void NewAlias(const CString& szAliasName, const CString& szConnStr);

/*	使用ModifyAlias您可以来修改Alias的名称, 
	Alias的连接字符串 等相关的操作。
	要进行IsAliasExisting的检查。
	//##ModelId=3C38859901B5
*/	void ModifyAlias(const CString& szAliasName, const CString& szConnStr);

	//##ModelId=3C38859902D8
	void EnumAliases(CStringList& Aliases);

private:
	//##ModelId=3C3885990378
	CString m_strConnectString;

	//##ModelId=3C38859A018F
	char m_strAliasName[255];

	//##ModelId=3C38859A01F3
	BOOL m_bIsActive;

	//##ModelId=3CCC33720229
	CIniFile *m_pIniFile;


/*	用来检查这个别名是不是处于活动的状态,如果是那么就不能进
	行删除,和Modify的动作。
	//##ModelId=3C38859C025A
*/	BOOL IsAliasActive();

protected:
	//这个函数是用来修改菜单的, 当它返回的时候, 
	//一个符合上下文环境的弹出式菜单就被创建并修改成功.
	//##ModelId=3CDCDEE3029D
	virtual void BuildContextMenu(DBTREE_NODE_CONTEXT& context);

	//##ModelId=3C41D26C0352
	virtual BOOL ExpandItem(HTREEITEM hItem, UINT state);
	//##ModelId=3C41D26D001F
	virtual const char * GetTreeNodeCaption();
public:
	void DeleteDB(CString &strDBName);
	void CreateDB(CString& strDBName);
	//在开始设计的时候,给BuildLVITEM采用的不是虚函数,
	//可是到目前来看,这是不可以的,因为,这样的话就
	//不能更改在右视中的图标。
	//##ModelId=3CD958EC01C3
	virtual void BuildLVITEM(int& nIndex);

	//##ModelId=3C67402900F4
	virtual void Erase(CDBTreeNode * pTreeNode);

	//##ModelId=3C5CCCD80359
	virtual BOOL OpenRelatedView(LPARAM lParam);

	//##ModelId=3C5CC9C70290
	BOOL FillListView(CListView *pView);
	//##ModelId=3C5B9BA00104
	virtual void OnMenuItemClick(UINT nCmd);
	//##ModelId=3CCC3372025B
	CDBExpDatabase *m_pDatabase;
	//##ModelId=3C41D26D0047
	virtual void  BuildTVITEM(HTREEITEM hParentItem);
};

#endif /* _INC_CDBEXPALIAS_3C36949A00CB_INCLUDED */

⌨️ 快捷键说明

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