VC++ ODBC 읽기 데이터베이스의 데이터를 EXCEL에 저장

1807 단어
void CDialogOpRetrieveDis::OnBnClickedButtonSaveOpResult()
{
	// TODO:  
	CDatabase   database; 
    CString   sDriver   =   "MICROSOFT EXCEL DRIVER (*.XLS)";   //   Excel  
    CString   sExcelFile;                                 //    Excel  
    CString   sSql; 
	CString   strItemText[3];

	CFileDialog dlg(FALSE);
	if(dlg.DoModal()==IDOK)
	{
		sExcelFile=dlg.GetPathName();
	}
	else
	{
		return ;
	}

    try 
    { 
        //     
		sSql.Format("DRIVER={%s};DSN="";FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
			sDriver, sExcelFile, sExcelFile);		
		
        //       ( Excel ) 
        if(database.OpenEx(sSql,CDatabase::noOdbcDialog)   ) 
        { 
            //    
            sSql   = "CREATE TABLE MyData (  TEXT,  TEXT,  TEXT) ";//demo 
            database.ExecuteSQL(sSql); 
			
			int nRow =m_ListCtrlOpRecordDis.GetItemCount();
			int nCol = 3;
			for (int i = 0; i < nRow; i++)
			{
				for(int j = 0; j < nCol; j++)
				{
					strItemText[j] = m_ListCtrlOpRecordDis.GetItemText(i,j);
				}
			     
				//     
				sSql.Format("INSERT INTO MyData( , , ) VALUES('%s','%s','%s')",
					strItemText[0],strItemText[1],strItemText[2]); 
				database.ExecuteSQL(sSql); 
			}
        }             
		
        //     
        database.Close(); 
    } 
    catch(CDBException *e) 
    { 
		AfxMessageBox(e->m_strError);
        TRACE1( "Excel :   %s ",sDriver); 
    } 
}

좋은 웹페이지 즐겨찾기