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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

& K' m8 z' \! X5 O  x* l头文件,加入 #include <afxdb.h>
1 U( ?8 j% \1 _! u8 m/ c
* @: r9 V" G) A- l2 J5 {void excelTest::do_it()
$ `$ |7 e4 u) }* X' q7 T{6 Z+ A3 K! D0 [

1 l/ C( m6 z- X* ~% @3 q; k        // TODO: add your code here
; c% z8 `; v8 A+ y/ F' O5 ^* T# l1 V0 w8 E; Z7 G5 R1 ?
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse % _2 T. ^1 ]6 S7 k
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 4 h+ W+ u/ Y' K# x: l- {3 a
    DWORD     dwOptions = 0;    // 设置连接的建立方式 ) D; P0 H6 b8 A4 j6 W6 k
    CDBVariant temp;        // 数据库数据通用类型
& N, s5 ~; W( I6 M' \8 b    int result;             // 储存返回值的变量 2 h0 N6 G0 Y( x
    char cyl_height[133]; & k. t- C) y" G; _0 v$ E
    char cyl_diam[133]; ) l& {/ t8 m0 y$ [
    double *cylinderValue = NULL;  
4 @/ W( M! Y9 |' m8 F% g7 V  K# g, r9 e" S! Y/ f- p& N+ g4 h4 S
    try 0 I$ F' e/ m9 `" l" s. U2 P; C$ Y$ x
    {
3 J: e$ I% ^! p2 e% E! f                $ m% q* B9 D' U2 J* E4 R2 C
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 5 y4 I( H0 p% `' _% N+ w
        if( result != 0 )   // 如果成功打开
; E  b& t" c# P: u1 x        {
' u1 y' @, l8 A8 r* n: k# E            CRecordset rs( &Database );  // 定义记录集 7 ~" B( x' v$ f
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  . S+ _: [: S6 B( ?5 J% I5 I; w; v
            { * w2 U; d9 s7 e# ]4 Z
                rs.MoveFirst( );     4 S. \/ @/ j6 ^6 F" I
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
  T: }6 W" l8 A- b% y1 a                while( !rs.IsEOF( ) )    % c1 Z; W# X0 K
                {
+ i: ~- a# U5 t5 G                    cylinderValue =(double *)malloc( nFields * sizeof(double) );   B5 F* M2 S7 T+ ?. ]/ R
                    for( short index = 0; index < nFields; index++ )     
' n7 M+ c0 s7 i" S- i; d/ {                    {
) X. Z# t, p. Q9 |+ o$ n                        rs.GetFieldValue( index, temp );  # i, a- {( D: I* w( H+ B7 v0 Y
                        cylinderValue[index] = temp.m_dblVal;                                    
; y7 f* h) r& P1 s" {5 f. w: i                    }     
1 t; F2 d5 D) n5 m! N' a% g$ X: c. c                    sprintf(cyl_height,"%f",cylinderValue[0] );
# t/ P* A! \+ y                    sprintf(cyl_diam,"%f",cylinderValue[1] ); ' b" H8 l! G5 m7 x* c* p; i

' E# a0 F) K  r2 Y1 X% G  _7 ?                    rs.MoveNext( );  
+ Y2 ]3 {' P+ j! ^* x! U                    free(cylinderValue);
9 @) O& J8 G+ O3 j9 Z& m                }
* Q5 ~) R" a' q0 z% A6 n                rs.Close( );    // 关闭记录集 - X/ n/ e6 Z/ R
            } 7 N2 m2 ^1 }8 j+ _
            Database.Close();   // 关门数据库连接         
; i. A3 R4 d- G                }
5 V4 ]* N. `6 A( N' e    } 2 q- i2 v+ {+ V7 i& R$ f3 L6 T
, J  U; L4 w, b+ o
" G9 }. e: D' h% f' T
caTCh( CDBException *pe )   // 出错处理 6 H7 w& o/ p+ M+ ?# y, \" R
    {
* c$ }( O: d6 Q# m, c" O                AfxMessageBox( _T("Exception!" ));
  ^. N9 r0 R% ~6 K        AfxMessageBox( pe->m_strError ); ; Q9 b8 Q& E5 f) q( \9 z& r9 ^$ Q
        pe -> Delete( );
5 w  T& @( E. O1 K4 ^3 @0 C$ D    }
  u1 ^1 ^4 b- M' N1 b5 {}
9 \) l$ R7 M1 d3 U$ l5 Z( B3 R" {9 R. {5 H+ H  w: L

$ E* Z3 W. {! p" {1 x
. ?$ U; S: X' t7 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二次开发专题模块培训报名开始啦

    我知道了