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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

0 o" B2 C' l( w4 s) Y7 n+ i头文件,加入 #include <afxdb.h>
/ S% ?1 c8 r& S! U& T& t. J9 _4 I+ u
void excelTest::do_it()
1 Q8 C4 t0 @/ j4 A3 ]) g{
2 Q& l. v8 m8 F6 ^8 M' X% x: W1 P7 \* ~. S2 y
        // TODO: add your code here4 f5 L# N" ]0 E

! A' X( e& ?/ Q& m* b7 ~% k        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
/ ?* V. c% _, ^' H) m' H- T8 ~    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
7 Z( _* s' {: V* }) f    DWORD     dwOptions = 0;    // 设置连接的建立方式
0 n) T  h$ K1 x% v3 u4 a9 e    CDBVariant temp;        // 数据库数据通用类型
5 A% S3 I+ B% U    int result;             // 储存返回值的变量   a$ L6 A1 Z1 K, g! ^, ~
    char cyl_height[133];
0 _6 c4 Q( @) q    char cyl_diam[133]; 6 w2 w5 Z/ P6 P9 ?1 ~8 x
    double *cylinderValue = NULL;  : J' K# E3 D9 @/ {8 `* G" |
4 P2 X5 X+ m( H/ a$ Y" T. ^' _
    try $ Y4 `( ~& e! L) G% f
    {
$ g8 D. ]0 d% p. S7 I$ I- I               
) w7 @$ o# r% d6 R        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 . }8 A7 h. w/ Q' o- ?) X) `/ W
        if( result != 0 )   // 如果成功打开
& R5 T. O; |  d/ X: d7 d5 ~- [8 Y  j        {
! {) x; W& v$ ^* a: i; \" Z            CRecordset rs( &Database );  // 定义记录集 / A; h+ t/ r& x9 D: N
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
2 e" P+ Y) X8 Z( W+ E) h            { ( P, R7 O% m" p3 l$ \: |' s8 i
                rs.MoveFirst( );     
  h# k# @3 U2 K1 H# e& a. @! s! |- Y                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         " v/ X! l* b+ B: {3 x
                while( !rs.IsEOF( ) )   
+ L! H* I& `; h% l$ |. L0 i                { 6 Q: v" o, ~$ b2 m! d
                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
6 P* ~. [. J' V, C+ Z                    for( short index = 0; index < nFields; index++ )     
, Q7 W' R6 [+ A% I5 K' G5 |) d                    { 3 j+ |3 S6 C/ R5 `' V; b
                        rs.GetFieldValue( index, temp );  
) o, \4 M: Y' X* U! a7 f6 f% S/ U                        cylinderValue[index] = temp.m_dblVal;                                     7 |0 z: x$ k/ A+ n" @. D7 M& G
                    }     8 a  x9 C4 ^% ~& o
                    sprintf(cyl_height,"%f",cylinderValue[0] );
4 L* O/ P7 ^% k% t0 j1 X: ~( h                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 8 i0 ^7 e+ I5 |3 L
; B8 X! Q- ?1 _* @+ ]
                    rs.MoveNext( );  . d9 a3 f) |% \; |
                    free(cylinderValue); 4 {3 `, u+ d2 z$ [4 ]$ B9 s0 h
                }
2 [: Y1 x* z6 c9 c                rs.Close( );    // 关闭记录集
3 J9 v( }  ^! [5 {& j& A% S            }
7 `$ c# ]; t; d  A* f            Database.Close();   // 关门数据库连接         7 u0 _2 W3 ?- l( V
                }
' O6 i% O5 }/ f& ~3 }* U+ }; ]    }
" M4 \! i5 d9 C( p3 R% x5 O! M! N  a0 m& P( r. a# y
7 g* W) F9 u4 A6 j8 ~9 z8 k  n& t4 ]
caTCh( CDBException *pe )   // 出错处理
8 [0 X4 D1 ?) G% x! T    {
' a7 ~6 E  j" Y7 w; V7 h                AfxMessageBox( _T("Exception!" ));
! d: n: |6 T/ j1 x9 F        AfxMessageBox( pe->m_strError ); ( e' Q# w$ x( [& t$ _  A
        pe -> Delete( ); ; j$ M7 V' X/ L# F1 p3 K6 {( \0 i6 |
    }
) }) w: R  |. H+ h}& @4 s& c5 |  Z2 u4 \1 X- Q1 L0 r

. h& d) x+ F. @  z1 F; o* t: S9 G* S0 ~

, b2 e# T% J/ N  i: w% U0 s( v# |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了