PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2014-11-10 15:43:38 | 显示全部楼层 |阅读模式

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

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

x
  E5 ~$ j, \& }' i3 y* Z
头文件,加入 #include <afxdb.h>9 }$ ~/ x, a) m4 u

) O& t0 ~+ Z7 V% _+ a4 q: |void excelTest::do_it()
- n( ^% `  n$ D6 d" l9 z{+ K! Y+ D* F$ j8 c& \% x
7 y3 u, t+ i" W! C$ i/ r
        // TODO: add your code here
, B9 v4 `4 x$ R+ ~7 a% h6 c  n
& }4 b( W% Q: j) q# f        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
% Y/ K+ n+ |7 I5 L    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
3 f, K1 u% x) X  P0 p- H4 O    DWORD     dwOptions = 0;    // 设置连接的建立方式 * l+ p9 \  w2 Q$ c* H" K8 l
    CDBVariant temp;        // 数据库数据通用类型 3 R4 ~" g0 |& w3 B/ m9 e  y
    int result;             // 储存返回值的变量 # I# [" ]1 X& S9 q, X& S* e% ?
    char cyl_height[133];
& c) g; }$ B+ n( d  Y" n# \' j    char cyl_diam[133];
6 Z" R  S; h& z/ Q2 e. b    double *cylinderValue = NULL;  
5 F6 @- w7 _  v! L- t$ t4 u  q8 ?$ @. Q
    try 5 R( O; T2 D' {8 L+ f
    {
, F) i. t3 [" \7 ~: Y3 V                ) {2 k* d5 Y$ j& t$ u
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 2 L5 o' W: A3 g6 w; ^: X3 m$ ~
        if( result != 0 )   // 如果成功打开
. v6 p; A; H  r3 w5 P  T  W4 W        { $ u* f% J# k' g& _# P# d+ m* `
            CRecordset rs( &Database );  // 定义记录集
2 T) }2 X% [6 P, h3 v! D, z! ]5 ], u            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  & q8 O1 X0 M$ q" P
            {
% m; U! v- C% d& M! L2 e0 S, ~                rs.MoveFirst( );     ; a- r9 D5 B1 b0 k) V% x) N
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
* Q+ a2 a9 t  [! {9 X+ r                while( !rs.IsEOF( ) )    6 ?: h1 C% V3 l  m( i; G. @! D2 A
                {
# S8 _& |9 ?* u: o* D& _7 r" M                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); 6 {) `2 L$ M( B, Y
                    for( short index = 0; index < nFields; index++ )     . G1 i, `  s0 v8 r% |' D& q
                    {
+ y& s( y7 D% i5 V                        rs.GetFieldValue( index, temp );  
9 K+ p/ S" m0 K9 O) K  {. J                        cylinderValue[index] = temp.m_dblVal;                                     0 E6 z+ y3 \# s8 M- L1 y9 c
                    }     3 ]: k! K/ T- }) m
                    sprintf(cyl_height,"%f",cylinderValue[0] );
# w( I$ S! K7 d7 ?                    sprintf(cyl_diam,"%f",cylinderValue[1] );
+ A: P* c& n/ K1 `  b5 v7 m6 c' X9 t" V# b2 n7 E# N- J
                    rs.MoveNext( );  
& o) J3 n) T4 P3 Y) H% D: ^                    free(cylinderValue); 0 A: V9 o1 r* V/ [+ v: I, q. q- R$ H
                }
. J: G& E) g7 S                rs.Close( );    // 关闭记录集 0 R3 K) d: q2 m! P; d; Y
            } $ d# D- Y3 W# J( K1 w5 ?( i
            Database.Close();   // 关门数据库连接         ; `: @/ {" A' \6 u' {/ j1 s
                } 0 O  t, @) w2 h# y. R1 G6 Q
    } 2 [  D8 q; {% }1 k  Y- u

/ D& c0 ~. k5 U: _, Z: ]# C. G
! k1 E) M5 P! U7 f4 a$ Z8 N# dcaTCh( CDBException *pe )   // 出错处理 $ X' `8 L4 I3 s) N! @3 ~
    { ' J$ J4 V' \' F) j& L+ ?
                AfxMessageBox( _T("Exception!" )); $ e+ H2 L* e7 g  v
        AfxMessageBox( pe->m_strError ); 7 t& u0 Z$ a: y$ N* Z9 ^, S
        pe -> Delete( ); : u0 _, c* a7 M- i
    } 8 I8 t3 J7 J/ C# Q/ X
}6 I3 T  l: H5 ]  v) a
9 D! }, y# f  T1 A/ e3 i) ~5 Z

) E5 T/ z- X4 O0 y) e' c8 U0 Z% x
$ O# l$ m6 z! j1 D: ~! \
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

0

主题

10

回帖

73

积分

注册会员

积分
73
发表于 2017-3-30 16:07:29 | 显示全部楼层
这个运行的怎么样,上个图看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了