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

📄 dbtoolsql.cpp

📁 很好的程序,希望能给你们带来方便.大家一起来维护这个网站,使其发展的更旺
💻 CPP
字号:
// DBToolSQL.cpp : implementation file
//

#include "stdafx.h"
#include "DBTool.h"
#include "DBToolDlg.h"
#include "DBToolSQL.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DBToolSQL dialog

DBToolSQL::DBToolSQL(CWnd* pParent /*=NULL*/)
	: CResizableDialog(DBToolSQL::IDD, pParent)
{
	//{{AFX_DATA_INIT(DBToolSQL)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	parent=pParent;
	m_nID=DBToolSQL::IDD;
	m_bolFlagSave=TRUE;
}


void DBToolSQL::DoDataExchange(CDataExchange* pDX)
{
	CResizableDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DBToolSQL)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DBToolSQL, CResizableDialog)
	//{{AFX_MSG_MAP(DBToolSQL)
	ON_WM_CREATE()
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_EXECUTE, OnExecute)
	ON_EN_CHANGE(IDC_EDIT_SQL, OnChangeEditSql)
	ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)
	ON_BN_CLICKED(IDC_BUTTON_OPEN, OnButtonOpen)
	ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)
	ON_BN_CLICKED(IDC_BUTTON_SAVEAS, OnButtonSaveas)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DBToolSQL message handlers

BOOL DBToolSQL::Create()
{
	return CResizableDialog::Create(m_nID,parent);
}

void DBToolSQL::PostNcDestroy() 
{
	((CDBToolDlg*)parent)->BoxDone();

	CResizableDialog::PostNcDestroy();
}

int DBToolSQL::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	AfxInitRichEdit();

	return 0;
}

BOOL DBToolSQL::OnInitDialog() 
{
	CResizableDialog::OnInitDialog();
	
	HICON hIcon;

	hIcon=AfxGetApp()->LoadIcon(IDI_ICON_SQL);
	SetIcon(hIcon,TRUE);
	SetIcon(hIcon,FALSE);

	AddAnchor(IDC_EDIT_SQL,TOP_LEFT,BOTTOM_RIGHT);
	AddAnchor(IDC_BUTTON_NEW,BOTTOM_RIGHT,BOTTOM_RIGHT);
	AddAnchor(IDC_BUTTON_OPEN,BOTTOM_RIGHT,BOTTOM_RIGHT);
	AddAnchor(IDC_BUTTON_SAVE,BOTTOM_RIGHT,BOTTOM_RIGHT);
	AddAnchor(IDC_BUTTON_SAVEAS,BOTTOM_RIGHT,BOTTOM_RIGHT);
	AddAnchor(IDC_EXECUTE,BOTTOM_RIGHT,BOTTOM_RIGHT);
	AddAnchor(IDCANCEL,BOTTOM_RIGHT,BOTTOM_RIGHT);
	ShowSizeGrip(TRUE);

	CenterWindow();

	return TRUE;
}

void DBToolSQL::OnClose() 
{
	if(!m_bolFlagSave)
	{
		int rtn=AfxMessageBox("数据已经更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);

		if(rtn==IDYES)
		{
			if(!SaveFile()) return;
		}
		else if(rtn==IDCANCEL) return;
	}

	DestroyWindow();
}

void DBToolSQL::OnCancel() 
{
	PostMessage(WM_CLOSE);
}

BOOL DBToolSQL::PreTranslateMessage(MSG* pMsg) 
{
	if(pMsg->wParam==VK_ESCAPE && GetKeyState(VK_ESCAPE)<0) return TRUE;
	if(pMsg->wParam==VK_TAB && GetKeyState(VK_TAB)<0)
	{
		if(GetFocus()==GetDlgItem(IDC_EDIT_SQL)) return FALSE;
	}

	return CDialog::PreTranslateMessage(pMsg);
}

void DBToolSQL::OnExecute() 
{
	CString strsql;

	GetDlgItemText(IDC_EDIT_SQL,strsql);
	AfxMessageBox("a");
}

void DBToolSQL::OnChangeEditSql() 
{
	m_bolFlagSave=FALSE;
}

BOOL DBToolSQL::GetSave()
{
	return m_bolFlagSave;
}

void DBToolSQL::OnButtonSave() 
{
	SaveFile();
	GetDlgItem(IDC_EDIT_SQL)->SetFocus();
}

void DBToolSQL::OnButtonOpen() 
{
	if(!m_bolFlagSave)
	{
		int rtn=AfxMessageBox("数据已经更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);

		if(rtn==IDYES)
		{
			if(!SaveFile()) return;
		}
		else if(rtn==IDCANCEL) return;
	}

	CFileDialog dlg(TRUE,"*.sql",NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"SQL语句|*.sql|文本文件|*.txt||",0);

	if(dlg.DoModal()==IDOK)
	{
		CFile fle;
		CString flename=dlg.GetPathName();

		SetWindowText("SQL工具 - [" + flename + "]");
		flename.Replace("\\","\\\\");
		fle.Open(flename,CFile::modeRead);

		void far* sql=GlobalAlloc(0,fle.GetLength());
		fle.ReadHuge(sql,fle.GetLength());

		SetDlgItemText(IDC_EDIT_SQL,(char*)sql);
		fle.Close();

		m_bolFlagSave=TRUE;
		GetDlgItem(IDC_EDIT_SQL)->SetFocus();
	}
}

BOOL DBToolSQL::SaveFile()
{
	CString flename;

	if(!m_bolFlagSave)
	{
		GetWindowText(flename);
		flename=flename.Mid(flename.Find("[")+1);
		flename=flename.Left(flename.GetLength()-1);
		flename.Replace("\\","\\\\");

		if(GetFileAttributes(flename)==-1)
		{
			CFileDialog dlg(FALSE,"*.sql",NULL,OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT,"SQL语句|*.sql||",0);

			if(dlg.DoModal()==IDCANCEL)
				return FALSE;
			else
				flename=dlg.GetPathName();
		}
		else
			flename.Replace("\\\\","\\");

		SetWindowText("SQL工具 - [" + flename + "]");
		
		CFile fle;

		fle.Open(flename,CFile::modeCreate|CFile::modeWrite);
		GetDlgItemText(IDC_EDIT_SQL,flename);
		fle.Write(flename,flename.GetLength());
		fle.Close();

		m_bolFlagSave=TRUE;
	}

	return TRUE;
}

void DBToolSQL::OnButtonNew() 
{
	if(!m_bolFlagSave)
	{
		int rtn=AfxMessageBox("数据已经更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);

		if(rtn==IDYES)
		{
			if(!SaveFile()) return;
		}
		else if(rtn==IDCANCEL) return;
	}

	m_bolFlagSave=TRUE;
	SetDlgItemText(IDC_EDIT_SQL,"");
	SetWindowText("SQL工具 - [未命名]");
	GetDlgItem(IDC_EDIT_SQL)->SetFocus();
}

void DBToolSQL::OnButtonSaveas() 
{
	CString flename;

	CFileDialog dlg(FALSE,"*.sql",NULL,OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT,"SQL语句|*.sql||",0);

	if(dlg.DoModal()==IDCANCEL)
		return;
	else
		flename=dlg.GetPathName();

	flename.Replace("\\\\","\\");
	SetWindowText("SQL工具 - [" + flename + "]");
	
	CFile fle;

	fle.Open(flename,CFile::modeCreate|CFile::modeWrite);
	GetDlgItemText(IDC_EDIT_SQL,flename);
	fle.Write(flename,flename.GetLength());
	fle.Close();

	m_bolFlagSave=TRUE;
}

⌨️ 快捷键说明

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