PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

1 H) x, q+ ?7 n- b  N头文件,加入 #include <afxdb.h>" ~4 {, w6 H; ?( e

" p# g- |. V. I  R% lvoid excelTest::do_it()
# _) H' G5 D; I/ u+ t# |( J$ t{
3 |6 B+ E! P  d1 r
& R2 [# k5 |/ b/ |        // TODO: add your code here
5 b  S8 {  O7 I2 h& f7 y8 O3 q/ q. b- x$ Q1 @, a% t: x# R
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
$ F4 n) O/ W7 T% J  A* L    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
$ O6 k  g6 t1 ^/ _; [' w, I    DWORD     dwOptions = 0;    // 设置连接的建立方式 3 c' k; C* ]2 X
    CDBVariant temp;        // 数据库数据通用类型
9 X5 m7 ~% }7 H& @/ h    int result;             // 储存返回值的变量
# o5 ?6 j( l; h; C9 ~& @' r    char cyl_height[133];
) m6 N5 w# J+ b    char cyl_diam[133]; / _( A; [2 i3 G9 [/ t$ o$ C
    double *cylinderValue = NULL;  
* `7 |) V; g3 j. ^' ~! i
5 K! {( x4 p: G5 U    try
; l# i* y$ e- Q3 p) o( ]; g    { # y' Z% X# S* d- [/ r9 ^
               
5 @- n7 M: Y, |+ I1 f        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
2 H2 j* e' L; ^+ r9 Z. F        if( result != 0 )   // 如果成功打开
! L# K) j, A  z: S( u* M9 w        {
/ ?' g5 p( n9 @+ Y' e            CRecordset rs( &Database );  // 定义记录集
, O+ s' _9 I8 a; @" \9 T2 M0 P            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
4 e0 D, s0 N" T            {
" }5 d$ E& V/ W/ H1 F9 }' d                rs.MoveFirst( );     ; G, J9 j+ l6 I' A
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         / g* K+ B9 ]1 }& s" O  c
                while( !rs.IsEOF( ) )    / O& s4 I9 v4 z, q: L+ o% {
                { / p; t( i* J; W4 K$ T3 T
                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
2 u; _: a+ M: q, @0 G7 W. a: \                    for( short index = 0; index < nFields; index++ )     
6 L# @$ t8 H# v/ r6 P- {6 E                    { - k# ?4 b* N7 {; G/ a
                        rs.GetFieldValue( index, temp );  + A5 B1 G6 p: ~. D4 o$ p( G
                        cylinderValue[index] = temp.m_dblVal;                                     ' e% F  f4 b3 U
                    }     ' K( p0 P2 R# l5 D' y
                    sprintf(cyl_height,"%f",cylinderValue[0] ); " V* b5 z! M8 u1 n( Z4 r2 ^
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); ' d4 C' y$ d( Q5 I( ^- F" T. \8 O3 F
3 @9 Q. b& B/ b, ^7 E* R
                    rs.MoveNext( );    I: X0 ^7 x( K9 d* Z* X
                    free(cylinderValue);
1 r  n" M7 L* \" l+ I% F" D                }
# t' ?; |! M. U                rs.Close( );    // 关闭记录集 : z; W2 b2 u, S3 @8 Z' h7 ]5 D+ Y- E
            } , a8 F# l# V& m. g6 K. \: s- I
            Database.Close();   // 关门数据库连接         $ G8 u8 g/ t$ b% t' ]8 k6 O
                } 7 D! j' {- ~' U9 G
    }
9 \& e% h. s9 `0 b
& t; G: X- F7 K  T* \4 z) T* k
- I9 z) b' Y" McaTCh( CDBException *pe )   // 出错处理
" F% f+ {" l( |2 o: `$ t; I) o    {
$ p8 f8 o4 n8 W' _! T, b! U- R( m                AfxMessageBox( _T("Exception!" )); 1 |3 {7 h3 \9 V
        AfxMessageBox( pe->m_strError );
' J" w0 N5 [8 k+ `+ \* z" Q        pe -> Delete( ); + d8 f+ D: D# H) |6 X2 B9 s5 P- h
    } 3 t) u* r- y( [/ i* l3 R
}
% E6 k0 H3 H8 y: |- s
) D3 L3 H: V0 G2 q4 u+ o7 W3 L
/ L6 n4 `) c4 r3 D. k
" F# U+ r4 N$ `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了