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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

; J6 Q$ a3 }; W8 O头文件,加入 #include <afxdb.h>, Q! S+ K, J+ J& Z) _
" r( E# H3 S3 b' t
void excelTest::do_it()
1 k! a$ f) j- g4 \0 q4 Y. [: L{
! l( I6 f9 Y: V; t7 u5 j3 z- E
. ?0 Y! O. [' E, {! P/ ~        // TODO: add your code here
( N( w% k/ x) P  ?5 r
& h7 }5 @$ [  ?( I: i1 ^, f        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
. f% J# s  C, l* v: \    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
5 F" E5 r5 @8 }5 q7 C    DWORD     dwOptions = 0;    // 设置连接的建立方式 - ~* K5 n3 q! W: {/ G+ @/ ]! R. S) i
    CDBVariant temp;        // 数据库数据通用类型
, ]/ S/ _/ B7 Z; {3 |    int result;             // 储存返回值的变量 , Q2 d. y8 a/ m4 k' F
    char cyl_height[133];
5 e7 V. T% |' I5 F5 K8 W    char cyl_diam[133];
' P. C, ]" k& Y    double *cylinderValue = NULL;  ! x( }7 ~  s6 @3 D' x5 [
( f! K% N2 i# W
    try 2 {4 S- P- N/ ~6 a1 Z
    { ' ^0 m( M. _2 P8 K0 m  w2 k
               
1 _/ E3 i* g0 q! d- g        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 ; K/ N. n# [8 a4 }$ v
        if( result != 0 )   // 如果成功打开 . l- x: Y2 o0 {( r& G) K% D
        { . g& f! v1 r+ N; N6 w
            CRecordset rs( &Database );  // 定义记录集
9 d& S5 R; ]/ @# E8 n            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  2 I! D5 ?/ I' t2 f: v' |3 j
            {
1 e+ i% f. M& Q, f                rs.MoveFirst( );     9 t; `6 F  s5 P" C; O: b- d$ T
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         ) j! B' ]$ }" n9 b2 T; `/ Z
                while( !rs.IsEOF( ) )   
. E9 T) Q7 c+ @" k. p/ Z                { . z8 T& @5 X* C: O2 i
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); ! [) I$ @' h: _' P' j& e
                    for( short index = 0; index < nFields; index++ )     
# f  x' s" _6 C2 B/ `6 H; n                    { " C/ h  g  `2 C' \0 w. Y6 r0 F
                        rs.GetFieldValue( index, temp );  
, c$ y6 e7 w# l+ t                        cylinderValue[index] = temp.m_dblVal;                                    
( Q, E6 l+ n, S% V: f$ G0 B                    }     
" ], o; Y7 D5 O: n8 S9 w+ k                    sprintf(cyl_height,"%f",cylinderValue[0] ); * L* ?. W; c5 M7 S) ]4 v5 h: V
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); & }" O$ ]+ x$ H; N5 o. @
( d0 w1 t, q+ `1 i# g3 ~" s
                    rs.MoveNext( );  
5 i5 }' I: F7 {2 s- U9 q                    free(cylinderValue);
0 v# d; i4 P% h* L                } 7 C- D- Y( B' O6 d
                rs.Close( );    // 关闭记录集 , {+ [$ j8 u5 M5 d6 |6 u
            } & X1 O# Q. E; `! b. R
            Database.Close();   // 关门数据库连接         
& H! W' A* x9 w" @                }
% {9 f  G& n5 J+ u    } 1 H" c/ s$ S# Q6 a/ c0 q
$ O0 h* v. q  q( S9 ~3 V

# L4 N; J; s- b1 S7 bcaTCh( CDBException *pe )   // 出错处理
5 n, _8 V5 \* E. e    { ' i5 D0 E( x  F4 z2 Q, E
                AfxMessageBox( _T("Exception!" )); 8 Y9 W/ D' x9 R2 ~+ D1 Q+ R  _; C. F
        AfxMessageBox( pe->m_strError ); 0 `  F$ `, F6 Q" Z! Q" h  u8 J
        pe -> Delete( ); / W( y% z5 `; Z, @. [0 o( h% `
    } 7 A0 i; e/ W, X
}
. G9 ~; x) a4 C% E% B/ Y2 ?2 @7 [# I, K, F1 V3 B* o* z3 m
$ l# `3 S; w. [* Q: x  @

# ~/ D# X3 U5 E2 N( q2 ]* U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了