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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

5 Y1 N, b* N6 U- Z( V3 c) X' X8 C7 u头文件,加入 #include <afxdb.h>
3 \* Y2 L) m& w  ]3 @# o# d9 c$ x6 q: `
void excelTest::do_it()
9 Q9 n9 l- p) p. ~9 z2 C' Y( V0 }{
+ m, W2 F3 j. k, p8 t& Q3 F, m  j$ j. @
        // TODO: add your code here7 f$ |! K. N) X( G4 U
- E+ \6 r, `. U$ Y$ I3 U$ n
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse ; z  h% |* X1 C5 n8 g
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
& c$ c* z5 w$ y    DWORD     dwOptions = 0;    // 设置连接的建立方式 2 L( v9 X% ^: c; @2 |6 p; c
    CDBVariant temp;        // 数据库数据通用类型
- J. }( Z2 [3 a8 d; ~    int result;             // 储存返回值的变量 / I2 r& f; }; w' ]( t$ q7 j# D( l
    char cyl_height[133]; ) P1 d. j% q* a; O. G2 L, d
    char cyl_diam[133]; ; J' i: r$ W6 Y  @+ m; ~: a9 o
    double *cylinderValue = NULL;  
' p  D6 p0 G9 A+ K* Q7 m
! q2 l9 R* ]. F* @2 m1 E* i+ b    try , q2 T! h# K# }* q. V3 b2 t* _  `
    {
+ q( w( ~. O1 [' o* Y                ( u; ]2 G6 g: A
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
6 Q9 V4 M; V% z0 E* k( _        if( result != 0 )   // 如果成功打开
( c0 g' J  @$ F5 z3 Z        {
: m$ N- Q. b6 d1 H) ~: d8 e  m0 ^            CRecordset rs( &Database );  // 定义记录集
* X) r/ v( v) j% p* Y) [            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
/ [& K' n& _$ Z# l            { . u: X9 d! |. U0 Z9 Z& z/ Z0 s) i7 q
                rs.MoveFirst( );     7 t& ?' e# a- h2 ]1 a9 K
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
* ~1 R" |5 r1 C                while( !rs.IsEOF( ) )    5 R6 c, d( p9 `6 w( t/ w
                { $ K4 i4 Q  L1 T. |1 H& w+ a: t
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); # y! Q5 V% o+ B+ q1 v
                    for( short index = 0; index < nFields; index++ )     ! ^" _; q; Y4 ?( j/ |
                    {
* ~5 Q) S1 z% w2 X# L% r, Z; q% w                        rs.GetFieldValue( index, temp );  
- R: \7 F+ f+ ^9 {' I* b" e: L                        cylinderValue[index] = temp.m_dblVal;                                    
- z; y/ h9 M6 w. G                    }     
6 l+ y& h- U* _" s                    sprintf(cyl_height,"%f",cylinderValue[0] ); 5 `! Q) \1 i0 |. u: @- j# B
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); # p* j9 b) F) l* ]) p2 [- _

' P: P& T/ z# p, W* m- O                    rs.MoveNext( );  
) P7 }6 e* S- N! m1 F- [$ z! O                    free(cylinderValue);
! x8 K% U: K4 b: H                } ; J* t% B2 z* f
                rs.Close( );    // 关闭记录集
4 Q$ ]) Z' h# _% S- F2 {* u            }
+ n* f7 r- M* g5 Y5 Z( j            Database.Close();   // 关门数据库连接         % A0 b/ t+ _( D4 f) ^9 T! P7 U
                }
. S! @! i( n* d% ]$ d. N- e    }
+ @; y* @% v8 P- U
" F0 o5 A- ^/ R: M4 U+ i
+ e8 ~. T# c% ?# I/ z1 D, wcaTCh( CDBException *pe )   // 出错处理
4 y! s% \+ I0 Q( O+ Q. j' m' F    {
% l6 p5 R, y; R; ^                AfxMessageBox( _T("Exception!" )); ) E) d  ]( o5 x0 G! s1 P2 c- _
        AfxMessageBox( pe->m_strError );
4 b1 x3 n( }, {; v/ \        pe -> Delete( );   @3 r1 T% g# J
    }
5 D! V7 V# A' a/ |+ p}2 M* P% ]8 c  Y2 d  ~; E' D
! J8 Q/ v- S6 w, [) s2 k( R

; b+ J! O3 S- Z7 Z9 b
3 G+ E& T2 n, u2 [( U6 o" S( S; Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了