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

📄 set3database.cpp

📁 mcgs的数据导出源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
					}
					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 + -