📄 set3database.cpp
字号:
}
while (SQL_SUCCESS == iResult && iOutLen == 0);
if (iOutLen > 0)
{
sBuffer2[iOutLen] = 0;
m_strSaveResult = m_strSaveResult + McgsString( IDS_FORMAT_STR_34 ) ;//+ sBuffer2;
}
else
{
m_strSaveResult = m_strSaveResult + McgsString( IDS_FORMAT_STR_35 );
}
VERIFY(SQL_SUCCESS == SQLDisconnect(hdbc));
bTrue = true;
}
else
{
//获取携带的信息
//long hstmt = 0;
UCHAR sBuffer1[32],sBuffer2[256];
memset(sBuffer1,0,sizeof(UCHAR)*32);
memset(sBuffer2,0,sizeof(UCHAR)*256);
long lNative = 0;
SHORT iOutLen = 0;
do
{
iOutLen = 0;
iResult = SQLError(henv, hdbc, 0, sBuffer1, &lNative, sBuffer2, 256, &iOutLen) ;
}
while (SQL_SUCCESS == iResult && iOutLen == 0);
if (iOutLen > 0)
{
sBuffer2[iOutLen] = 0;
m_strSaveResult = m_strSaveResult + "\r\n connect fail \r\n" ;//+ sBuffer2;
}
else
{
m_strSaveResult = m_strSaveResult + McgsString( IDS_FORMAT_STR_36 );
}
bTrue = false;
}
}
else
{
m_strSaveResult += McgsString( IDS_FORMAT_STR_35 );
VERIFY(SQL_SUCCESS == SQLDisconnect(hdbc));
bTrue = true;
}
//释放
VERIFY(SQL_SUCCESS == SQLFreeHandle(SQL_HANDLE_DBC,hdbc));
}
else
{
m_strSaveResult +="\r\nComponent error, please install ODBC again!";
bTrue = false;
}
VERIFY(SQL_SUCCESS == SQLFreeHandle(SQL_HANDLE_ENV,henv));
}
else
{
m_strSaveResult += "\r\nComponent error, please install ODBC again!";
bTrue = false;
}
m_strConnect = strConnect ;
if (bTrue )
{
UpdateData(FALSE);
m_Dlg->SetWizButton(5);
SetConnect();
m_Dlg->m_strDataName = m_DateName;
m_Dlg->m_iType = 1; //设置路径
}
else
{
AfxMessageBox(m_strSaveResult);
AfxMessageBox("testing database failed!");
return ;
}
}
void CSet3Database::OnButton4()
{
// TODO: Add your control notification handler code here
CFileDialogST dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, _T("All files\0*.*\0"), this);
CString sPathName;
int nRetValue;
UpdateData();
nRetValue = dlg.DoModal();
if (nRetValue == IDOK)
{
POSITION Pos;
Pos = dlg.GetStartPosition();
while (Pos != NULL)
{
sPathName = dlg.GetNextPathName(Pos);
} // while
} // if
m_strSaveDBName = sPathName;
UpdateData(FALSE);
}
void CSet3Database::OnPaint()
{
UpdateData();
CPaintDC dc(this); // device context for painting
m_Dlg->SetWizButton(2);
// TODO: Add your message handler code here
if (!m_bFirst)
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->Clear();
for (int i=0;i<m_Dlg->m_arrayInfoFile.GetSize();++i)
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString(m_Dlg->m_arrayInfoFile[i]->SvrGetFileName());
}
{ //搜索所有的ODBC引擎
CHAR buff[10240];
memset(buff,0,10240);
WORD wReturn = 0;
HINSTANCE hLib;
hLib = LoadLibrary ("odbccp32.dll");
if (hLib)
{
SQLGetInstalledDrivers lpfnDLLProc = NULL;
lpfnDLLProc = (SQLGetInstalledDrivers) GetProcAddress (hLib,"SQLGetInstalledDrivers");
if (NULL != lpfnDLLProc)
{
BOOL b = lpfnDLLProc((LPSTR)buff,(WORD)10240,(WORD*)&wReturn);
if (TRUE == b)
{
CString s;
/*for (int i = 0 ; i < 10240 ; i ++)
{
if ( 0 != buff[i])
{
s += buff[i];
}
else
{
//结束一个驱动程序
ASSERT(s.GetLength () > 0);
if (s.GetLength () > 0)
{
((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(s);
s = "";
}
if (buff[i+1] == 0)
{
break;
}
}
}*/
((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(_T("Microsoft Access Driver (*.mdb)"));
((CComboBox*)GetDlgItem(IDC_COMBO1))->SetWindowText(_T("Microsoft Access Driver (*.mdb)"));
((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(0);
}
else
{
ASSERT(FALSE);
}
}
FreeLibrary (hLib);
}
}
m_bFirst = true;
}
m_bShowFinish = true;
int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
if(iSel != CB_ERR) //没有选择
{
CString str;
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetLBText(iSel,str);
str.MakeUpper ();
if (str.Find("ACCESS") >= 0)
{
GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
}
}
else
{
m_bShowFinish = false;
}
iSel = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}
if(m_strSaveDBName.IsEmpty()) //没有选择
{
m_bShowFinish = false;
}
if ( !m_bShowFinish )
{
m_Dlg->SetWizButton(2);
return ;
}
else
{
UpdateData(FALSE);
m_Dlg->SetWizButton(5);
SetConnect();
}
m_Dlg->m_iType = 1;
CString str = m_strConnect;
str.MakeUpper();
if (str.Find("SQL") >= 0)
{
m_Dlg->m_ConnectSql = str;
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(FALSE);
m_Dlg->m_databaseType = 0;
}
else if (str.Find("ACCESS") >= 0)
{
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(TRUE);
m_Dlg->m_ConnectSql = m_strSaveDBName;
m_Dlg->m_databaseType = 1;
}
else
{
m_Dlg->m_ConnectSql = str;
m_Dlg->m_databaseType = 2;
}
m_Dlg->m_strDataName = m_DateName;
m_Dlg->m_Type = 2;
// Do not call CDialog::OnPaint() for painting messages
}
void CSet3Database::OnChangeEdit2()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
UpdateData();
m_bShowFinish = true;
int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}
iSel = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}
else
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->GetLBText(iSel,m_DateName);
}
if(m_strSaveDBName.IsEmpty()) //没有选择
{
m_bShowFinish = false;
}
if ( !m_bShowFinish )
{
m_Dlg->SetWizButton(2);
return ;
}
else
{
UpdateData(FALSE);
m_Dlg->SetWizButton(5);
SetConnect();
}
m_Dlg->m_iType = 1;
CString str = m_strConnect;
str.MakeUpper();
if (str.Find("SQL") >= 0)
{
m_Dlg->m_ConnectSql = str;
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(FALSE);
m_Dlg->m_databaseType = 0;
}
else if (str.Find("ACCESS") >= 0)
{
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(TRUE);
m_Dlg->m_ConnectSql = m_strSaveDBName;
m_Dlg->m_databaseType = 1;
}
else
{
m_Dlg->m_ConnectSql = str;
m_Dlg->m_databaseType = 2;
}
m_Dlg->m_strDataName = m_DateName;
// TODO: Add your control notification handler code here
}
void CSet3Database::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
UpdateData();
m_bShowFinish = true;
int iSel = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();
if(iSel != CB_ERR) //没有选择
{
CString str;
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetLBText(iSel,str);
m_strSaveDriver = str;
str.MakeUpper ();
if (str.Find("ACCESS") >= 0)
{
GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(TRUE);
m_Dlg->m_databaseType = 1;
}
else if (str.Find("SQL") >= 0)
{
GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE);
((CButton*)GetDlgItem(IDC_BUTTON4))->ShowWindow(FALSE);
m_Dlg->m_databaseType = 0;
}
}
else
{
m_bShowFinish = false;
}
iSel = ((CComboBox*)GetDlgItem(IDC_COMBO2))->GetCurSel();
if(iSel == CB_ERR) //没有选择
{
m_bShowFinish = false;
}
else
{
((CComboBox*)GetDlgItem(IDC_COMBO2))->GetLBText(iSel,m_DateName);
}
if(m_strSaveDBName.IsEmpty()) //没有选择
{
m_bShowFinish = false;
}
if ( !m_bShowFinish )
{
m_Dlg->SetWizButton(2);
return ;
}
else
{
UpdateData(FALSE);
m_Dlg->SetWizButton(5);
SetConnect();
}
CString str = m_strConnect;
str.MakeUpper();
if (str.Find("SQL") >= 0)
{
m_Dlg->m_ConnectSql = str;
m_Dlg->m_databaseType = 0;
}
else if (str.Find("ACCESS") >= 0)
{
m_Dlg->m_ConnectSql = m_strSaveDBName;
m_Dlg->m_databaseType = 1;
}
else
{
m_Dlg->m_ConnectSql = str;
m_Dlg->m_databaseType = 2;
}
m_Dlg->m_strDataName = m_DateName;
m_Dlg->m_iType = 1;
}
void CSet3Database::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_Dlg->m_strDataName = m_DateName;
SYSTEMTIME system,system1;
m_ctrlDayStart.GetTime(&system);
m_ctrlTimeStart.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
COleDateTime startTime,endTime;
m_Dlg->m_startTime = system;
m_ctrlDayEnd.GetTime(&system);
m_ctrlTimeEnd.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
m_Dlg->m_endTime = system;
*pResult = 0;
}
void CSet3Database::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_Dlg->m_strDataName = m_DateName;
SYSTEMTIME system,system1;
m_ctrlDayStart.GetTime(&system);
m_ctrlTimeStart.GetTime(&system1);
system.wHour = system1.wHour;
system.wMinute = system1.wMinute;
system.wSecond = system1.wSecond;
COleDateTime startTime,endTime;
m_Dlg->m_startTime = system;
m_ctrlDayEnd.GetTime(&system);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -