admin 发表于 2014-11-10 15:43:38

NX二次开发源码分享:使用MFC数据库的方式访问excel数值


头文件,加入 #include <afxdb.h>

void excelTest::do_it()
{

        // TODO: add your code here

        CDatabase Database;   // 定义一个MFC的CDatabse数据库类对象Databse
    CString   SQLCommand = "select * from plmhome";   // SQL查询语句
    DWORD   dwOptions = 0;    // 设置连接的建立方式
    CDBVariant temp;      // 数据库数据通用类型
    int result;             // 储存返回值的变量
    char cyl_height;
    char cyl_diam;
    double *cylinderValue = NULL;

    try
    {
               
      result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );// 打开数据库
      if( result != 0 )   // 如果成功打开
      {
            CRecordset rs( &Database );// 定义记录集
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
            {
                rs.MoveFirst( );   
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
                while( !rs.IsEOF( ) )   
                {
                  cylinderValue =(double *)malloc( nFields * sizeof(double) );
                  for( short index = 0; index < nFields; index++ )   
                  {
                        rs.GetFieldValue( index, temp );
                        cylinderValue = temp.m_dblVal;                                    
                  }   
                  sprintf(cyl_height,"%f",cylinderValue );
                  sprintf(cyl_diam,"%f",cylinderValue );

                  rs.MoveNext( );
                  free(cylinderValue);
                }
                rs.Close( );    // 关闭记录集
            }
            Database.Close();   // 关门数据库连接         
                }
    }


catch( CDBException *pe )   // 出错处理
    {
                AfxMessageBox( _T("Exception!" ));
      AfxMessageBox( pe->m_strError );
      pe -> Delete( );
    }
}



c1_wangyf 发表于 2017-3-30 16:07:29

这个运行的怎么样,上个图看看:)
页: [1]
查看完整版本: NX二次开发源码分享:使用MFC数据库的方式访问excel数值