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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
( J# O% p; x% Y, Q/ y4 D4 v
头文件,加入 #include <afxdb.h>1 a0 F, l  i* ~4 G- Q% M
/ P" S  L+ K! n3 H1 a. _
void excelTest::do_it()
6 o  d2 }7 D6 W{
: j( L' v2 ~% k+ P
/ S& ?; H# \7 x" J6 \        // TODO: add your code here
# q! d% D/ I$ w( x' t( o7 P# Q
8 {& \' c. o! y' M2 Q8 I2 k        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
. d3 N. v0 M# U) E7 u' \" X    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
8 p) @) g9 m7 w4 [" Z7 S: j3 I/ w    DWORD     dwOptions = 0;    // 设置连接的建立方式
# r/ {0 D. ~4 b% B    CDBVariant temp;        // 数据库数据通用类型 & {! p$ e9 Z/ K9 ~6 x3 L' k/ P
    int result;             // 储存返回值的变量 . @3 M# C; b) q. _7 H) J
    char cyl_height[133];
: J" y7 y5 W6 Y5 a+ ^; E6 ^2 `    char cyl_diam[133];
+ y# J8 W' u% F0 s; ~    double *cylinderValue = NULL;  
' F2 n& }' D, _+ N2 K, d; f9 z& E  h# y
    try " d$ g/ s4 U2 i* k4 C; d
    { 0 S& H' W+ Q/ `2 M
                ; s, U" Y8 E+ x* j+ {! q8 h
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 # K- l. j2 `( @6 B
        if( result != 0 )   // 如果成功打开 / H, p# Z" C3 S0 h$ @9 z7 F
        { 2 p2 ^2 G# f% ~! h& G6 V5 n
            CRecordset rs( &Database );  // 定义记录集 ! {/ ~& J& L$ Z5 t* p0 f
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
  b# V6 G! k. E            { ' {7 T) h$ ~1 \" T$ s- E# M
                rs.MoveFirst( );     
0 @# L. c7 S  _7 h                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
( W8 F% ]3 B3 u& M6 z( d                while( !rs.IsEOF( ) )    + U% Y3 ?! J" N
                {
4 n) o- h: L$ Y                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); ( ]7 |: l* ?6 r; C7 O* o7 H6 U
                    for( short index = 0; index < nFields; index++ )     
3 A4 `8 T0 }( ?% `9 ?, P* J4 X                    {
4 h% M' H! }- r( J                        rs.GetFieldValue( index, temp );  
- q, c4 L! W* Q0 W" D                        cylinderValue[index] = temp.m_dblVal;                                    
, |) G: X7 o  @% T! |                    }     : Z/ _8 G2 E% k3 ?
                    sprintf(cyl_height,"%f",cylinderValue[0] );
9 k' J+ x) h/ X4 `$ h! u4 @. x                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 6 G/ J5 S4 l, e8 r( V* s

2 v! h7 ?5 e( O! V0 U0 H; W$ B                    rs.MoveNext( );  
# `- d+ ?9 F3 `                    free(cylinderValue);
7 \6 v: o; e; F  w% b( o! G                }
# {, C% N! ~7 ?- g6 o                rs.Close( );    // 关闭记录集 $ [2 m9 R1 j5 ?" I$ z+ {
            }
$ l" C) S  g  E; V4 U. f            Database.Close();   // 关门数据库连接         # g" M6 G6 j# D9 Y6 r7 Q
                }
) v  ]5 F  L" X    } # l+ t+ ~, z$ ~% E- I+ A2 r

9 n3 |3 y# v2 Q) L7 I* X. M8 `1 n: |% s: b# @
caTCh( CDBException *pe )   // 出错处理 # i) ?; J% j, v
    {
, Q5 \5 c9 A' ?" E- s' z# g$ q                AfxMessageBox( _T("Exception!" )); ! U6 M8 c7 ~* `: B( U) Z
        AfxMessageBox( pe->m_strError ); % Z# b4 |9 N* J% _5 w, j' p
        pe -> Delete( ); , k) F, k4 \' y- ?) _% E9 l, q
    } / W4 _8 k. H1 r" L- k, u( x0 R1 D  D
}: J' [, V8 k5 w1 i% m1 ]

1 o2 t; R; K9 C1 Z9 y: i8 Y% |: p5 _8 M* s

) T1 ~4 D8 l) Y, `* K- ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了