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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82164
QQ
发表于 2014-11-10 15:43:38 | 显示全部楼层 |阅读模式

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

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

x
. V9 I3 i7 M; s, j
头文件,加入 #include <afxdb.h>
. M" t: e- ^0 M6 X; v
- J9 Y; U- r: _void excelTest::do_it()
. _, f/ ?4 G6 ]- x& N' l/ s{
6 ?, S1 T% ?5 d) `3 r# X+ P) x' D1 m8 n$ U
        // TODO: add your code here* U- M1 t8 y/ \( Y. e9 `" y

3 e0 j& V4 r0 D+ W. R/ \        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse   s& ~) c' ^  v! X3 n
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
+ e  {; W; {, N% w; ]    DWORD     dwOptions = 0;    // 设置连接的建立方式 - b* [3 I& X! ?2 s4 u' y. j  C) b
    CDBVariant temp;        // 数据库数据通用类型
7 }. {$ {: j( J2 Z4 o    int result;             // 储存返回值的变量 6 o% I1 Y1 ^) `. B) [/ o3 g
    char cyl_height[133];
) G: x7 r9 L" [! |! O4 N* m    char cyl_diam[133];
1 a# u! I: Z3 C) G' S& P' J    double *cylinderValue = NULL;    k/ H/ g) M. C; z) c
' ?9 T9 r9 y* ?, E  K$ I! A
    try 3 x0 }+ p9 ?8 g
    {
  Z/ v7 s  U9 ^& n- e4 H2 d               
; Q% c, p. B& q# j        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
) d  H8 A0 u1 b: `+ s        if( result != 0 )   // 如果成功打开 ' s7 W0 u) H, H1 p* j% R: E$ E+ Y
        { 3 F0 c& E$ }( W0 [) _8 q1 C
            CRecordset rs( &Database );  // 定义记录集 0 i# a( ?+ b9 W5 C( G
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  / G4 _# n) u% z* a9 Q
            {
# h* O) r4 {, g                rs.MoveFirst( );     & M5 `- U( X7 h
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         & _4 D# v( {# @, ~
                while( !rs.IsEOF( ) )   
7 e4 p/ S3 f2 G. _                { : w% H, O  e* c+ }8 y$ C
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); , [1 F6 Z) M/ D# v7 m
                    for( short index = 0; index < nFields; index++ )     
* E* `+ J; [/ @+ v                    { # Z" X0 V: [9 R! U$ @9 s- e
                        rs.GetFieldValue( index, temp );  " z1 t8 g$ a8 ^- g" a) {
                        cylinderValue[index] = temp.m_dblVal;                                     5 r1 a1 n3 d& q! o: ^" X$ _
                    }     
2 J4 F. H& j2 h& q& I                    sprintf(cyl_height,"%f",cylinderValue[0] ); : f' k, g4 z$ z+ W9 V# i. Y3 a
                    sprintf(cyl_diam,"%f",cylinderValue[1] );
* U! \* v0 z5 }; J: {+ t1 j: h! o- S' n1 b9 i) q$ s9 `
                    rs.MoveNext( );  5 Z4 S! a: w# V  l8 l
                    free(cylinderValue);
8 j3 E) i, |7 i) B, Y: [                } 4 O2 c5 C. W$ ^& x! U2 Y! C6 l5 n! o
                rs.Close( );    // 关闭记录集 # D4 G* e6 O, Z+ m2 k8 }
            } . o! P2 n4 {8 L+ A. g9 H4 P# v- ~
            Database.Close();   // 关门数据库连接         
5 d! k& i4 Y: B3 j( b3 F6 H: j                }
+ g0 p6 G0 L- }9 w    } 6 u8 I- u2 C) M4 h7 J* k. ?
6 u8 ~! Y, O) A! \( H7 d1 j7 a" c( h

- d& l  ^( f% A6 q8 M. L6 EcaTCh( CDBException *pe )   // 出错处理 5 v2 B( `7 T4 N
    { 9 w' Z9 V+ F7 O4 C: n# l9 `
                AfxMessageBox( _T("Exception!" ));
$ o* Q, C: f, {/ R' ]+ y% ?2 d        AfxMessageBox( pe->m_strError );
2 t7 x& X* p9 C6 _% u9 [        pe -> Delete( );
9 R  m% c, Y8 X- ]0 m' e; x3 o6 ^    }
& _4 b6 @5 X# B. V% ^* @" Z}" U9 \# O  Y7 |
% i: K( a2 g. H

: Y- L8 m: k( t* b" s
# E! B- ]2 M  ]; ]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

0

主题

10

回帖

73

积分

注册会员

积分
73
发表于 2017-3-30 16:07:29 | 显示全部楼层
这个运行的怎么样,上个图看看
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了