📄 importdlg.cpp
字号:
case VT_UI1:
strRet += _T("VT_UI1");
break;
case VT_UI2:
strRet += _T("VT_UI2");
break;
case VT_UI4:
strRet += _T("VT_UI4");
break;
case VT_I8:
strRet += _T("VT_I8");
break;
case VT_UI8:
strRet += _T("VT_UI8");
break;
case VT_INT:
strRet += _T("VT_INT");
break;
case VT_UINT:
strRet += _T("VT_UINT");
break;
case VT_VOID:
strRet += _T("VT_VOID");
break;
case VT_HRESULT:
strRet += _T("VT_HRESULT");
break;
case VT_PTR:
strRet += _T("VT_PTR");
break;
case VT_SAFEARRAY:
strRet += _T("VT_SAFEARRAY");
break;
case VT_CARRAY:
strRet += _T("VT_CARRAY");
break;
case VT_USERDEFINED:
strRet += _T("VT_USERDEFINED");
break;
case VT_LPSTR:
strRet += _T("VT_LPSTR");
break;
case VT_LPWSTR:
strRet += _T("VT_LPWSTR");
break;
case VT_FILETIME:
strRet += _T("VT_FILETIME");
break;
case VT_BLOB:
strRet += _T("VT_BLOB");
break;
case VT_STREAM:
strRet += _T("VT_STREAM");
break;
case VT_STORAGE:
strRet += _T("VT_STORAGE");
break;
case VT_STREAMED_OBJECT:
strRet += _T("VT_STREAMED_OBJECT");
break;
case VT_STORED_OBJECT:
strRet += _T("VT_STORED_OBJECT");
break;
case VT_BLOB_OBJECT:
strRet += _T("VT_BLOB_OBJECT");
break;
case VT_CF:
strRet += _T("VT_CF");
break;
case VT_CLSID:
strRet += _T("VT_CLSID");
break;
}
}
return strRet;
}
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImportDlg dialog
CImportDlg::CImportDlg(CWnd* pParent /*=NULL*/)
: CDialog(CImportDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CImportDlg)
m_sdatasource = _T("");
m_sfilename = _T("");
m_status = _T("");
m_sUserID = _T("");
m_sPassword = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CImportDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CImportDlg)
DDX_Text(pDX, IDC_DATASOURCE, m_sdatasource);
DDX_Text(pDX, IDC_FILENAME, m_sfilename);
DDX_Text(pDX, IDC_STATUS, m_status);
DDX_Text(pDX, IDC_USERID, m_sUserID);
DDX_Text(pDX, IDC_PASSWORD, m_sPassword);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CImportDlg, CDialog)
//{{AFX_MSG_MAP(CImportDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_IMPORT, OnImport)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImportDlg message handlers
BOOL CImportDlg::OnInitDialog()
{
CDialog::OnInitDialog();
::CoInitialize(NULL);
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CImportDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CImportDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CImportDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CImportDlg::OnImport()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
ByteImport x( (LPTSTR)(LPCTSTR)m_sfilename);
if( !x.IsFileopen() )
{
UpdateData( FALSE );
return;
}
CString strTmp;
/* strTmp.Format( "driver={sql server};"
"server=%s;"
"Database=%s;""UID=%s;""PWD=%s;",
m_server,m_sdatasource,m_sUserID,m_sPassword );*/
strTmp.Format( "dsn=%s;""UID=%s;""PWD=%s;",m_sdatasource,m_sUserID,m_sPassword );
_bstr_t bstrSQLServerConnect;
_bstr_t bstrProc =( L"sp_StartByteImport" );;
_variant_t Final;
bstrSQLServerConnect = (LPCTSTR) strTmp;
m_status="Empty File";
_ConnectionPtr Conn1;
_CommandPtr Cmd1;
_RecordsetPtr Rs1;
bool bvalid = false;
_bstr_t bstrProc2 ="sp_AddAccountingInfo";
try
{
Conn1.CreateInstance( __uuidof( Connection ) );
Conn1->ConnectionString = bstrSQLServerConnect;
Conn1->Open( bstrEmpty, bstrEmpty, bstrEmpty );
Cmd1.CreateInstance( __uuidof( Command ) );
Cmd1->ActiveConnection = Conn1;
Cmd1->CommandText = _bstr_t( bstrProc );
Cmd1->CommandType = adCmdStoredProc;
Cmd1->Parameters->Refresh();
Cmd1->Parameters->Item[ _variant_t( (long) 1 ) ]->Value = _variant_t( (LPCTSTR)m_sfilename );
Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, adCmdUnknown );
bvalid = true;
Final = Rs1->Fields->GetItem( _variant_t( 0L ) )->Value;
strTmp.Format( "%s", CrackStrVariant( Final) );
}
catch( CException *e )
{
TCHAR szCause[255];
e->GetErrorMessage(szCause, 255);
m_status=szCause;
}
catch( _com_error &e )
{
m_status=e.ErrorMessage( );
}
catch(...)
{
m_status="Error while executing the Import";
}
while ( x.next() && bvalid)
{
if ( x.isValidRecord() )
{
try
{
Cmd1->CommandText = bstrProc2;
Cmd1->CommandType = adCmdStoredProc;
Cmd1->Parameters->Refresh();
Cmd1->Parameters->Item[ _variant_t( (long) 1 ) ]->Value = Final;
Cmd1->Parameters->Item[ _variant_t( (long) 2 ) ]->Value = _variant_t( (LPCTSTR)x.pcDate );
Cmd1->Parameters->Item[ _variant_t( (long) 3 ) ]->Value = _variant_t( (LPCTSTR)x.pcURL );
Cmd1->Parameters->Item[ _variant_t( (long) 4 ) ]->Value = _variant_t( (LPCTSTR)x.pcTop );
Cmd1->Parameters->Item[ _variant_t( (long) 5 ) ]->Value = _variant_t( (LPCTSTR)x.pcQueryString );
Cmd1->Parameters->Item[ _variant_t( (long) 6 ) ]->Value = _variant_t( (long)x.pcBytes );
Cmd1->Parameters->Item[ _variant_t( (long) 7 ) ]->Value = _variant_t( (long)x.pcRequests );
Cmd1->Execute( &vtEmpty, &vtEmpty2, adCmdUnknown );
m_status.Format("Elapsed Time %d second(s) for %d records",x.ElapsedTime(),x.GetRecordCount());
}
catch( CException *e )
{
TCHAR szCause[255];
e->GetErrorMessage(szCause, 255);
m_status=szCause;
}
catch( _com_error &e )
{
m_status=e.ErrorMessage( );
}
catch(...)
{
m_status="Error while executing the Import";
}
}
else
{
m_status.Format(" %d bad records out of %d records",x.GetErrorCount(),x.GetRecordCount());
}
}
UpdateData(FALSE);
if( Rs1 != NULL ) Rs1->Close();
if( Conn1 != NULL ) Conn1->Close();
Rs1 = Conn1 = NULL;
}
void CImportDlg::OnOK()
{
// TODO: Add extra validation here
::CoUninitialize();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -