PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

# n5 e% ]; V* E  Y; f9 N" t头文件,加入 #include <afxdb.h>
) P6 U  \: _- ~. K, _1 q) P8 i7 i* x5 B" b, z
void excelTest::do_it()
3 h/ @! n% f3 P1 Z{" g8 a7 W  Y2 I4 x( h

% q! `5 d/ t& o/ v. y$ y9 j! F        // TODO: add your code here
; n+ |- C% |& j- v2 y5 A
) X# h7 q6 J9 p* U        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
# M# l1 \5 o# m" z: D2 O: h    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 + A; |8 |! U1 W  i4 p
    DWORD     dwOptions = 0;    // 设置连接的建立方式
! d& r  C  A8 k1 ~    CDBVariant temp;        // 数据库数据通用类型 % I0 W% p7 u; k. g. ^. ?
    int result;             // 储存返回值的变量
5 _( Q$ \# I. i2 |( S9 m3 L0 V    char cyl_height[133];
  }2 ~) d$ t2 s) a) s    char cyl_diam[133]; 9 n# M' J0 W) H9 \. h" E7 x/ z
    double *cylinderValue = NULL;  
9 r- s2 n$ u9 d, T
( W% T+ f4 p# Y" c, v4 S    try
- p# a0 z% f3 ^( Y    {
5 h% ?' ?" q# x                9 \; q7 z- T: N' N3 i/ G, Y. n
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
" [& F3 {: k# X9 n, Y9 q( J        if( result != 0 )   // 如果成功打开 " h% G1 H9 s, s  x' N' y7 i: \# s
        { & O. Y# E+ S2 E" V8 O
            CRecordset rs( &Database );  // 定义记录集
, H" U& M. U# e) s            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
: H2 _, F. g4 D2 u            { 7 X  p" O! R. R# ~/ D4 j# ]
                rs.MoveFirst( );     
/ g3 _; F; h/ n& ~- ?1 Z! h0 J. d                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         $ ~7 T2 ]2 r' `0 n
                while( !rs.IsEOF( ) )    1 S  u& k# Z) F& G
                {
8 G+ ?4 R' o. F# y/ J                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); 3 s+ h1 z& Z: f5 s1 E. j4 a& a0 w7 d. G
                    for( short index = 0; index < nFields; index++ )     ; \4 m8 G/ y4 P) Y' M! A
                    {
5 J  W! D0 N+ d9 |5 ~7 w                        rs.GetFieldValue( index, temp );  
( v9 a7 s6 c1 O9 `0 {% b1 g+ d% P9 ]                        cylinderValue[index] = temp.m_dblVal;                                    
; q0 ?  G5 I- d4 i( e: R& g                    }     
  ]' H( }1 q1 \; Q0 ]0 f                    sprintf(cyl_height,"%f",cylinderValue[0] ); - n2 Q9 w& z6 D. {) q2 k
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); / [/ B5 o8 |" s, Z- |& _  a
& P. }# `. I2 i7 U
                    rs.MoveNext( );  - d. b( H; J/ a/ D2 y
                    free(cylinderValue); ' ~; E6 ]; ^, e  V8 D/ a' }' O
                } 4 F' G8 ?7 W5 S8 a: z9 q7 A# t
                rs.Close( );    // 关闭记录集
/ E: l; K+ E1 q; {+ D0 @            } . w- _& R8 [; R
            Database.Close();   // 关门数据库连接         1 H. G7 J4 r0 H  T* l
                }
: \( z. h  o! d, T+ E  x7 u    }
, H2 f: _  w; \; M1 S  r% X/ p1 T4 x3 ^$ i7 ?: u/ M: {
3 c3 l5 \- O- x. ?/ K, ~* R
caTCh( CDBException *pe )   // 出错处理
$ G2 j& m- a, D$ j( v    { - `, s- [; i& q* v3 Y8 d
                AfxMessageBox( _T("Exception!" )); ; ~) V) C) F! P2 @& j7 Y# y
        AfxMessageBox( pe->m_strError ); % s; ~7 X# h8 F- [! g" t+ e9 Z
        pe -> Delete( );
" z' y: b2 u6 I    } 5 \( C( }$ l+ A$ f9 y( k/ m; g( J
}2 ]9 o! w* p, q& g
; Z- G' [- i* M8 v- T
( B7 v& c' i# Y
9 D# ^7 j7 ?% x7 m; Q2 ?+ A; z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了