PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

0 I; g$ y# ?0 u) i$ ~头文件,加入 #include <afxdb.h>2 i/ P* n0 U* l% D3 D- |. M

. [4 ^" i  D! e* Q% e. k3 [void excelTest::do_it()
: S$ E' j' k. O, g{8 [4 J# Y1 L2 q" x$ @

, W9 O0 M. J6 J' i" W+ b        // TODO: add your code here
. N( m5 t8 W; F! \
8 i: p$ D# T( r! W! [% u8 [8 S        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse - |2 |9 U4 X! C5 `
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 ) M2 j, f1 h8 I. q" `$ z+ m
    DWORD     dwOptions = 0;    // 设置连接的建立方式
4 W' C( m$ v! l    CDBVariant temp;        // 数据库数据通用类型 3 L6 w7 Q2 V- ~  _
    int result;             // 储存返回值的变量
( x7 {( b' C( S' G" W3 M6 r7 ^    char cyl_height[133];
* N5 h  ?. i) o0 r* }# O( B    char cyl_diam[133];
- h4 z& y5 f' J5 a    double *cylinderValue = NULL;  
/ W) h. L! V+ V; \3 B
6 h8 u9 u  P( Z5 R: l: p$ l, V    try
9 p2 g* ?0 y! ]8 B' Q; x1 H* Y    { 9 X5 F) w8 E% [0 I
               
9 Q6 a+ X& s$ s5 j/ l( o  q3 t        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 - e) ^" i- _. c  v$ ?+ H
        if( result != 0 )   // 如果成功打开
  I1 m  \3 I. o        {   ?- s1 _0 y9 q
            CRecordset rs( &Database );  // 定义记录集 ; {) l8 g' W% d' r7 b- M
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  9 j2 F1 g! }  ]1 s  }
            { + S/ u0 v2 M1 V$ M5 A0 t0 a
                rs.MoveFirst( );       }# ~+ X3 W! x  |5 ~4 q& e3 v
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         2 r0 C3 f4 x8 H8 c
                while( !rs.IsEOF( ) )    . I& _$ P0 O% W/ O
                {
& b9 X. P4 I) S4 z8 x1 X                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
& E2 l  b  s- v                    for( short index = 0; index < nFields; index++ )     
/ R3 m+ Y/ A/ w3 [, f                    {
  i0 u/ p0 y* X3 A                        rs.GetFieldValue( index, temp );  , j: ~* ~$ t% C3 K) X; p
                        cylinderValue[index] = temp.m_dblVal;                                     / T6 @: `' ?7 x; r, t
                    }     
6 b! w5 K: o+ {6 R: X. F                    sprintf(cyl_height,"%f",cylinderValue[0] );
! {% M( m$ ?) ~; _- ^7 g2 ^& U/ q; D                    sprintf(cyl_diam,"%f",cylinderValue[1] ); ! a/ r9 ~  q4 O4 \1 `

% R$ J1 A/ s1 t* S* X                    rs.MoveNext( );  
6 _+ b( Z) @8 @) [                    free(cylinderValue);
  ?* \# j6 H9 t1 n# T- X: L                } " ]( c3 D5 s4 }+ N
                rs.Close( );    // 关闭记录集 . f+ w) B6 a: ]$ L4 i- K
            }
# d$ v. W+ \& g! H& {! W            Database.Close();   // 关门数据库连接         ! R$ f" G$ C4 W0 C3 b; b8 a: R
                }
1 L9 c+ `; |. l- h    }
" Z( E3 ?( d" E8 R
) Y/ l5 E& ~  Q2 D8 `, t. z3 w; U/ y! X6 B
caTCh( CDBException *pe )   // 出错处理 + l; O# K+ M9 p
    {
( \4 b! z6 y7 ~; Q, n* N                AfxMessageBox( _T("Exception!" ));
  ?+ M" ?; G9 i9 D/ S% j        AfxMessageBox( pe->m_strError ); / e3 M/ g6 H0 r5 L& a5 ?, x8 a8 p
        pe -> Delete( ); . M+ ^6 V1 F% O$ i8 J/ F( U9 ?: _
    }
/ \/ x; M% ^6 P- C: }- z( }+ v}4 _' T, H7 U6 z6 j3 w

' K4 y( n: k* U/ n" C* H  q+ Q% O+ Y: H) I+ p; Z' e5 V
, g1 e- o4 x8 x; m" h$ k% Z  T- Y3 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了