PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

2017-3-30 16:07:29 4503 1

admin 发表于 2014-11-10 15:43:38 |阅读模式

admin 楼主

2014-11-10 15:43:38

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
# M. o" L- r3 |8 f" b* g
头文件,加入 #include <afxdb.h>" U5 m* F' \  a. H

  D8 C' u' f1 u0 _void excelTest::do_it(). H8 D! `+ N- M! K5 x
{
# s- F5 C: w" ~! V% p8 R( F! H, Q( F4 n
        // TODO: add your code here
7 K+ P7 o7 R9 T% q( q* ^/ Z/ Y( |
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse 5 Q/ @. P* L. C- Q+ Z
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 2 u* C5 Y* }( |( z# X' f
    DWORD     dwOptions = 0;    // 设置连接的建立方式 * t* G5 ]3 m+ r7 c" H& ]
    CDBVariant temp;        // 数据库数据通用类型 ) ?- j3 ]3 A' O$ c7 k+ Q
    int result;             // 储存返回值的变量 ) ]9 O; x. Y& k, ~# s
    char cyl_height[133]; ' F4 z7 U& m: F5 n/ `
    char cyl_diam[133]; ' p& V! [! v9 z7 N8 \& }
    double *cylinderValue = NULL;    K4 [0 h" X# ^' N5 _. k( I
' ?& e; d& f5 X+ b  C3 k
    try
* m& s0 [: {4 [1 y) I& x+ i/ h& |    { 5 ?) x/ ?% @$ R/ }' L9 {2 R
                . X) F0 S( ^9 f8 {
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 + [0 I- V6 Q3 `8 J. f
        if( result != 0 )   // 如果成功打开
' W: [& [' g* K2 ?/ [0 E$ [        {
0 m3 W3 q# F$ B  t5 d( g! I% K            CRecordset rs( &Database );  // 定义记录集
4 O) c+ I1 \- O            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
, i2 J( c9 l6 o& }            {
( z6 O( T  M, z0 |: b                rs.MoveFirst( );     + y- u) e0 G' ]# C8 X0 F5 _
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
! m: U. Z: F" [4 |3 V3 N- H( B                while( !rs.IsEOF( ) )   
6 L3 e' G9 y! m) ?6 b+ T                {
3 x3 E. x8 s3 n3 n, c& A$ ?                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
/ h" }- ~# C8 J& F                    for( short index = 0; index < nFields; index++ )     
$ t! g4 d6 R2 _8 a7 }9 S: I                    { " s/ E: {; n* t$ u. u# p: D
                        rs.GetFieldValue( index, temp );  
2 Q. M  _7 I, m: o- |7 t                        cylinderValue[index] = temp.m_dblVal;                                    
- M  s9 {. t( E; D" l1 b) z- t                    }     ; B) {$ V4 w& v1 e/ s3 E( S7 o
                    sprintf(cyl_height,"%f",cylinderValue[0] ); " Q$ D0 v" H' H0 i
                    sprintf(cyl_diam,"%f",cylinderValue[1] );
* E# p" `$ |! Y* R6 k1 j5 _" W/ y3 D  w) x% _4 \2 \; f# {& U( O* e
                    rs.MoveNext( );  3 _& V) W; C+ ^3 V/ W
                    free(cylinderValue); # a6 p/ [& r' O) q" |5 x! y* M
                } / I) F( w+ ~* U% l
                rs.Close( );    // 关闭记录集 ) r: q; M' P" B, |
            }
% ~, N2 s- o8 N3 k% C! J            Database.Close();   // 关门数据库连接         " n; ~. X$ Q4 Y1 M
                }   ]& B+ R  c1 ]
    } * S( W& J4 q& o& R8 g
9 I2 I1 v( i* P. }( \, ~( b% f
, u; z9 M, ]: q4 i, Z# Z
caTCh( CDBException *pe )   // 出错处理
& W( u" b& P( ^, n    { " I) _' h: g+ o
                AfxMessageBox( _T("Exception!" )); . ?) j. o  K" D
        AfxMessageBox( pe->m_strError ); 2 o8 V" j. u% K1 h; J6 C
        pe -> Delete( ); ' {8 }+ i+ r% K3 k- I- y
    } 5 L! V+ T. U/ ~" H
}% Y/ Y8 |) d7 v
3 {! A5 H  v) t* C' K
6 y# I$ o$ y/ D

9 W0 l; \7 A2 d9 Y
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

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

c1_wangyf 沙发

2017-3-30 16:07:29

这个运行的怎么样,上个图看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了