178 lines
3.9 KiB
C++
178 lines
3.9 KiB
C++
#include "stdafx.h"
|
|
#include "JSJKDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CJSJKDlg, CDialog)
|
|
|
|
CJSJKDlg::CJSJKDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CJSJKDlg::IDD, pParent)
|
|
, m_sPassword(_T("SHAdministrator"))
|
|
, m_sUser(_T("sa"))
|
|
, m_sSQLSrv(_T("192.168.1.2\\SH_EARTHWORM"))
|
|
, m_sPassword2(_T(""))
|
|
{
|
|
m_bMasterCntSuccess = false;
|
|
}
|
|
|
|
CJSJKDlg::~CJSJKDlg()
|
|
{
|
|
}
|
|
|
|
void CJSJKDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1,m_sPassword2);
|
|
DDX_Text(pDX, IDC_EDITSA, m_sUser);
|
|
DDX_Text(pDX, IDC_EDIT5, m_sSQLSrv);
|
|
DDX_Text(pDX, IDC_EDITPASSWORD, m_sPassword);
|
|
DDX_Control(pDX, IDC_BTCONNECTTEST, m_wndBT);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CJSJKDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CJSJKDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_BTINSDB, &CJSJKDlg::OnBnClickedBtinsdb)
|
|
ON_BN_CLICKED(IDC_BTCONNECTTEST, &CJSJKDlg::OnBnClickedBtconnecttest)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CJSJKDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CJSJKDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_sPassword2.CompareNoCase(_T("ShanghuaSoft")) != 0)
|
|
{
|
|
AfxMessageBox(_T("建数据库许可密码不正确"));
|
|
return;
|
|
}
|
|
|
|
OnOK();
|
|
}
|
|
|
|
BOOL CJSJKDlg::CreateSQLDb()
|
|
{
|
|
if (!m_bMasterCntSuccess)
|
|
{
|
|
AfxMessageBox(_T("主数据库没有连接测试或不通过!请执行连接测试!"));
|
|
return FALSE;
|
|
}
|
|
|
|
CString sFullPath = FilePath::GetSysDir() + _T("\\SQLConnectTest\\SH-EarthWorm.sql");
|
|
|
|
::CoInitialize(NULL);
|
|
|
|
//连接后执行sql 脚本
|
|
CString sSQL;
|
|
sSQL.Format(_T("Provider=sqloledb;Data Source=%s;Initial Catalog=%s;User Id=%s;Password=%s;"),
|
|
m_sSQLSrv,_T("master"),m_sUser,m_sPassword);
|
|
|
|
if (m_dbSQRemo.InitSQLServer(sSQL))
|
|
{
|
|
sSQL = _T("select count(*) From master.dbo.sysdatabases where name='SH_EarthWorm'");
|
|
if ( !m_dbSQRemo.IsSelEmpty(sSQL) )
|
|
{
|
|
int nRes = AfxMessageBox(_T("上华专业数据库已经存在!是否删除重建?"),MB_YESNO);
|
|
if (nRes == IDNO)
|
|
{
|
|
return TRUE;
|
|
}
|
|
else
|
|
{
|
|
//先删除
|
|
sSQL = _T("DROP DATABASE SH_EarthWorm");
|
|
m_dbSQRemo.ExecuteSQL(sSQL);
|
|
}
|
|
}
|
|
|
|
//判断数据库是否存在
|
|
sSQL = _T("Create database SH_EarthWorm");
|
|
if ( m_dbSQRemo.ExecuteSQL(sSQL) )
|
|
{
|
|
//创建表
|
|
CStdioFile file;
|
|
if(!file.Open(sFullPath,CFile::modeRead | CFile::typeText))
|
|
{
|
|
AfxMessageBox(_T("读取专业数据库安装文件失败!"));
|
|
return FALSE;
|
|
}
|
|
|
|
CString strSql,strRead;
|
|
strSql.Empty();
|
|
|
|
while(file.ReadString(strRead))
|
|
{
|
|
if(strRead.Trim().CompareNoCase(_T("GO"))==0)
|
|
{
|
|
if(!strSql.IsEmpty())
|
|
{
|
|
if(! m_dbSQRemo.ExecuteSQL(strSql) )
|
|
{
|
|
return FALSE;
|
|
}
|
|
strSql.Empty();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
strSql+=_T(" ")+strRead;
|
|
}
|
|
}
|
|
file.Close();
|
|
AfxMessageBox(_T("创建专业数据库成功!"));
|
|
EndDialog(IDOK);
|
|
}
|
|
else//创建失败
|
|
{
|
|
AfxMessageBox(_T("创建上华专业数据库失败!或上华专业数据库已经存在!"));
|
|
return FALSE;
|
|
}
|
|
}
|
|
else //数据库已经存在
|
|
{
|
|
AfxMessageBox(_T("专业数据库已经存在!不需要创建!"));
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
void CJSJKDlg::OnBnClickedBtinsdb()
|
|
{
|
|
CreateSQLDb();
|
|
}
|
|
|
|
void CJSJKDlg::OnBnClickedBtconnecttest()
|
|
{
|
|
UpdateData();
|
|
|
|
CString sVal;
|
|
if (m_sSQLSrv.IsEmpty() || m_sUser.IsEmpty() || m_sPassword.IsEmpty())
|
|
{
|
|
AfxMessageBox(_T("请输入完整的服务器名称、账号、密码!"));
|
|
return;
|
|
}
|
|
|
|
//_bstr_t strCnn("Provider=sqloledb;Data Source=MyServer;"
|
|
//"Initial Catalog=pubs;User Id=sa;Password=;");
|
|
CString sConnect;
|
|
sConnect.Format(_T("Provider=sqloledb;Data Source=%s;Initial Catalog=%s;User Id=%s;Password=%s;"),
|
|
m_sSQLSrv,_T("master"),m_sUser,m_sPassword);
|
|
|
|
if (m_dbSQRemo.InitSQLServer(sConnect))
|
|
{
|
|
CString sText;
|
|
m_wndBT.GetWindowText(sText);
|
|
sText += _T("√");
|
|
m_wndBT.SetWindowText(sText);
|
|
AfxMessageBox(_T("主数据库连接测试通过!"));
|
|
m_bMasterCntSuccess = true;
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox(_T("主数据库连接测试没有通过!请与数据库管理员联系?"));
|
|
}
|
|
} |