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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

  k# s5 ?* a7 H7 s, w7 g% F/ {头文件,加入 #include <afxdb.h>
6 a, A8 B. P) h" O
, c, K  D7 }( rvoid excelTest::do_it()9 U) I8 u7 d- Q
{) f$ r) a) x& B* \& g
) X, H2 c: I8 R9 a: r2 x. O
        // TODO: add your code here
1 i* r, Q* s2 K) v0 q. s1 q
& a, L0 ^4 j* R        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse ) r  d2 @' [$ Y, S
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 3 x# {" r/ v% w9 J
    DWORD     dwOptions = 0;    // 设置连接的建立方式 + x/ l) Z! i! U: ]  d' E* j) v
    CDBVariant temp;        // 数据库数据通用类型
; N! ^2 e- n  C2 m6 R# I9 _3 m$ z    int result;             // 储存返回值的变量
' ?7 w8 W+ ^  c/ P    char cyl_height[133]; 5 W  f3 e+ ~0 v' Q
    char cyl_diam[133];
2 f( h7 A0 Z" t% g6 c" m8 c. a    double *cylinderValue = NULL;  
) Z1 R( q( f; R& y5 w& f5 }
- F1 I$ j: F& c% F2 s$ i    try
- N4 ^" o) j3 |: _    {   I4 K$ g* {: l; J: s# ~, H
               
0 ~+ g0 X5 n1 ?$ t; e        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
. [5 I. @0 y6 H9 [9 L4 o        if( result != 0 )   // 如果成功打开 5 X7 ^- w0 P  q9 g8 v
        { 0 b$ P+ [4 l6 V2 h/ S- k2 @6 }
            CRecordset rs( &Database );  // 定义记录集 # o8 ?0 w$ F8 J
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
9 ]; z2 [' j3 L% d# o( N7 O            {
) n3 k. L* z8 e+ f0 n. m0 p+ c                rs.MoveFirst( );     
+ Z1 J) `. P! d" c7 J/ G                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         0 B! l2 o" E2 e- Y$ A( y: t; o
                while( !rs.IsEOF( ) )    4 i- m/ ]1 e* c; ?
                { ' X: K$ {) y/ A. N: @; Y6 d
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); 6 a$ E( m" [- ^' `4 d! x7 g
                    for( short index = 0; index < nFields; index++ )     & c/ Z+ ?" R7 \
                    {
$ V/ s' y6 |( C9 Z6 U! s                        rs.GetFieldValue( index, temp );  
/ ?( t0 F; k) d$ L( f. h9 H' u. I                        cylinderValue[index] = temp.m_dblVal;                                     2 G" U- S4 n% o0 o, i2 f4 B9 E
                    }     
/ P9 o; g' _' H8 s3 ?6 D+ k                    sprintf(cyl_height,"%f",cylinderValue[0] );
7 j0 v, q4 q4 e4 D8 g( B, O# Y) y                    sprintf(cyl_diam,"%f",cylinderValue[1] ); & n& H& K$ c! f

: q8 H% ]2 z, L5 F4 ]( K" Z- c                    rs.MoveNext( );  
; O7 ?6 |, ~' m0 m                    free(cylinderValue); ' U( R' D( y8 [- @
                } , q) }% a" u1 B( t
                rs.Close( );    // 关闭记录集 * E4 a( l  w7 o7 g$ {- L
            }
% ?- V8 R2 [2 ?0 J, u, Y/ Q) v            Database.Close();   // 关门数据库连接         
' M$ |9 G7 P; e                } 7 }- y9 J/ }% v3 `# _
    }
5 M7 f8 ~" x: B9 F( M8 b
7 m5 e+ Z, f1 V8 W. G- a4 [0 C1 ~2 ^1 q
caTCh( CDBException *pe )   // 出错处理
7 N* U2 ]! X" M. H, z    {
. n4 Q' J1 l# f$ F                AfxMessageBox( _T("Exception!" )); , c! H% q8 t4 U7 P4 Z& v$ R
        AfxMessageBox( pe->m_strError );
, K- f; B. w. c( J        pe -> Delete( ); 0 Z7 }* R) D% R3 U1 b
    } ' X7 p! P! l% y
}: F8 @' }5 J, N; _

: a% G2 e  k6 ~$ C
5 Z- z) U) M; Y( [- l# s# _. }; t: k% [: G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了