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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

. p0 l% m5 ?6 k* y( j# H头文件,加入 #include <afxdb.h>
2 [/ e9 @  F, e
7 {# T. I1 X$ f0 }1 _* y2 b, o, \void excelTest::do_it()
% W, b/ x9 w/ _5 i, k4 f{
8 N( I% m( `8 @& B$ o' G
3 S% [5 |/ g/ H3 A. l        // TODO: add your code here
! w5 z/ b9 `4 ~* y$ a, f# A
) n' x- E4 P% m7 |3 i        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
9 X- V1 R: N) S! d: {) A) w    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
$ J8 t) ^: U( p4 H( G/ ^! j! t7 n    DWORD     dwOptions = 0;    // 设置连接的建立方式
" W7 }8 A* D1 a4 z: J1 l    CDBVariant temp;        // 数据库数据通用类型
7 f. t0 V4 M7 i( p& g    int result;             // 储存返回值的变量
. o' O  \- d+ ^% c    char cyl_height[133]; / E  o$ H3 i' Y2 @" A2 z4 c: ]. \
    char cyl_diam[133];
6 e0 T4 E9 p  S) d7 G+ a    double *cylinderValue = NULL;  " q# u0 r; }" d: D- x) j6 [( D
# h" b! o1 ?' Y/ W, [8 e" @
    try ; B. @. [1 O9 R# Q! ]2 s
    { 8 U: g+ o1 C7 {
                ( C+ X9 L6 p0 h
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 ' g5 d; Z; v5 j3 p
        if( result != 0 )   // 如果成功打开
0 a. n' ?8 @4 L$ r        {
& T2 u/ \2 W" R; j3 v" z            CRecordset rs( &Database );  // 定义记录集
3 m9 E2 V: ^: V1 L* u6 Q) i& |4 _            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
' }- u' w( H; U            {
7 |. B# V9 L' U2 h& w0 a                rs.MoveFirst( );     
+ A. }* X- ~, Y1 c. p! D/ E                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
: q! t- K; y' r- {/ z! Y                while( !rs.IsEOF( ) )    , ]# w6 B7 c  r2 ?. A1 x  L
                {
7 ^9 l, i1 i0 T( Q' Y                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); - I- u: {4 }+ \) o
                    for( short index = 0; index < nFields; index++ )     
- @8 V. L3 w* e* i* ^+ z1 j# }+ w% _                    { ; \# K( C! t% Y: Q
                        rs.GetFieldValue( index, temp );  / `  I7 l% V' a5 ~
                        cylinderValue[index] = temp.m_dblVal;                                     ( C- s# Y, l# l- l
                    }     ' p1 U5 a- i/ G) V
                    sprintf(cyl_height,"%f",cylinderValue[0] ); $ L6 ?: e5 W) @% Q2 _3 Y" q
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 4 |* X9 e) g  k( y* W& ^$ n
  r/ j$ ^; n/ k) a% V, J8 X
                    rs.MoveNext( );  
9 X+ L6 G* U; _+ S  _9 |0 A                    free(cylinderValue); 1 c5 e% X* ?8 t& V% z
                }
% e- ^! t  q2 l7 V8 [                rs.Close( );    // 关闭记录集 ; B  x; V; c; K  G: u3 a# n- Y  h& D: ?+ A
            }
' z, ~" c- ^, b/ m  |3 b9 B' J            Database.Close();   // 关门数据库连接         
: ~. y5 a. c  T  \" q" H                } 9 l$ \4 V9 u- l
    } + e. @6 l5 F# w1 W9 D
/ e. _- G6 H( D. C

( l! J- E- [% e6 gcaTCh( CDBException *pe )   // 出错处理
8 N2 R0 n, o  v  i/ k5 t/ h    { , D9 O& o" f/ b4 j& v
                AfxMessageBox( _T("Exception!" ));
: E, b- ]/ q% l: d/ P/ ^) P% n& ]        AfxMessageBox( pe->m_strError );
2 Q8 ?4 z: \8 }* ]; Y        pe -> Delete( ); , K  [/ p/ Y+ e% L3 y. v
    }
, Y( ?/ t- v6 l6 w6 [; _& g: V}5 V) p3 h- j, S1 B5 T' K5 @' ~: `

; K6 J; L$ }( N: M' h5 B6 K- U/ P# M
9 A. a. Q6 J, l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了