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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

$ |4 L8 Q  l4 f" r5 L/ M) @$ H! _头文件,加入 #include <afxdb.h>
) F: f9 a( o& X+ M8 S  L' V
+ j1 \; Y. @/ B' G' n, ovoid excelTest::do_it(). _5 a" A+ g- F4 s& z- J3 i* r; O
{6 y# U1 {& p8 @4 X

( @4 P3 j: }! p        // TODO: add your code here8 T+ G+ ^; K# [0 F$ M# K: K' \
: f3 T; J7 t0 L8 j& D; w
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse ' _! L- p3 F: W  s2 t0 B9 c& o
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
* G' c$ z  S1 Z    DWORD     dwOptions = 0;    // 设置连接的建立方式
2 P4 M1 \! A) o! ?: k    CDBVariant temp;        // 数据库数据通用类型 : ~6 `& h/ X1 r/ [; I" R; t
    int result;             // 储存返回值的变量 $ u! ?. t+ M4 c+ D7 n, y  q
    char cyl_height[133];
0 t9 A+ f5 k" \* N$ `2 {+ t) x    char cyl_diam[133];
5 J; x: k, p( u0 s# D0 M    double *cylinderValue = NULL;  
! b- }) X' d# I% B) C  Q! J/ B1 T5 A# ?8 i1 v( h0 Z. X
    try
9 R0 D- B1 `8 F7 B* C9 \: V/ P' x    {
% Y8 {. p3 d: g/ A               
. G2 K" D3 c( y& N$ R        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 , [2 a, B8 v+ N
        if( result != 0 )   // 如果成功打开 & w0 u. E0 T  b" J) U, c
        {
( d* u: A0 u9 f1 u) n1 K( R3 d/ m* K            CRecordset rs( &Database );  // 定义记录集 ! b; C2 B0 j% [# ~
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  - l% `3 ]. h# s9 h
            {
# f6 C* ]: c* X" E* V                rs.MoveFirst( );     & V1 e% z: y2 }. m$ w0 `& \
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         $ d/ \3 F9 J3 M8 R& @8 Z
                while( !rs.IsEOF( ) )    2 J( L9 B" S" _- J% @' I( Q
                {
& B/ O" }# u1 {& J) |( m                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
" i. S7 _1 @. z& g& m3 P) W                    for( short index = 0; index < nFields; index++ )     
/ C) J& K5 R/ J( Z' s                    { : q9 \9 o3 W" U/ ]' Y. i
                        rs.GetFieldValue( index, temp );  $ G$ \: R  ^* |1 h* d2 r1 n& R
                        cylinderValue[index] = temp.m_dblVal;                                    
0 e' U8 b; {4 u) |9 E                    }     ; c* l" V) I. P
                    sprintf(cyl_height,"%f",cylinderValue[0] );
% q" `. A& @+ u4 |! M1 R                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 5 ~2 H5 F! G6 V9 l( P* K1 n8 U' v
9 N! v2 V0 J  C0 `2 D6 d/ Y& E5 Q
                    rs.MoveNext( );  7 w$ x/ H# T2 e3 n: v
                    free(cylinderValue); $ h  z3 U% e* |& t
                } 1 P6 U3 e% i7 @. S7 w
                rs.Close( );    // 关闭记录集 : L2 R$ @/ L5 M+ d9 V# D9 A' h: R
            } ( j! t' O, k, Z0 r7 j: A
            Database.Close();   // 关门数据库连接         
; b+ s' s6 ~2 W9 Z& t7 ]( k, H                } 7 s, a, l, ]2 r* }; \! {3 `
    } 6 q1 B0 [2 _0 I

; F0 y) z$ i6 D3 T, Z* M  c6 g! J4 g$ M2 a! X" I* i
caTCh( CDBException *pe )   // 出错处理
% B: F+ `: O; j6 T# w7 v1 l7 q    {
& p! ~3 ~, d# @" D8 c7 L                AfxMessageBox( _T("Exception!" ));
1 B; J, a! D8 u! y7 a! C        AfxMessageBox( pe->m_strError );
$ g' }' A, V7 h: _3 A* s7 V/ r        pe -> Delete( );
/ L6 L1 d2 ^0 D% J    } * N* Y, q) _0 O9 N: Z
}
8 e4 l5 C3 D  X4 c2 k( O5 z* h% I$ i7 B4 v% l3 z9 R* a+ M: l, k
" w2 i% ?2 X- P& C+ J$ s4 w$ Y" F
2 b/ {- U% D5 a! l$ u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了