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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

: h2 X6 g  O1 w/ d" M* @头文件,加入 #include <afxdb.h>9 l; g7 g+ f$ x7 B7 }
  l4 U0 k9 W+ m! u! ^& o& y
void excelTest::do_it()% p% i# l$ b5 s& Q9 k8 o( F5 }
{1 k/ B: o0 O2 H6 @; A9 B; s1 N1 j

; p, M; Q  q; Q2 H        // TODO: add your code here4 n& [! |; ?1 h3 Y0 j- H
& @; Y4 V8 V4 r( r1 B
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
. Q5 }% m  ^5 |; x# t    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
. `/ |6 `0 \/ A& l% Z4 y* [    DWORD     dwOptions = 0;    // 设置连接的建立方式
8 K/ I( ~. H0 r  t! T# e9 _    CDBVariant temp;        // 数据库数据通用类型 & A! C2 c! f7 O+ Q5 X' E
    int result;             // 储存返回值的变量 6 }7 R: o9 t" u
    char cyl_height[133];   `* b  v' l7 K! Q: S7 Z
    char cyl_diam[133];
6 g8 H: o: \$ ~' |: R, w. K6 _    double *cylinderValue = NULL;    j' \+ S9 y. S

2 i8 n, A6 d, l/ I/ g    try 8 ]2 s4 a  E4 a) c3 ^; [. ?
    {
, m; k; x5 Y# }5 j/ |( x3 X                ' c2 J4 h+ I0 Y+ U/ e1 r
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
( o4 n! S/ j/ r3 B7 [6 X        if( result != 0 )   // 如果成功打开 # `0 e) ?1 B1 I
        {
' J6 M( G0 I, @4 X' m            CRecordset rs( &Database );  // 定义记录集 + ~4 `0 F$ j6 S
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
0 I  U3 m: `- l, m! `3 H  g. M            {
. l; `& R" j% v( m+ r                rs.MoveFirst( );     
( d3 t. S# p9 I7 m( ^& T: @                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
9 h2 H; M: a2 u- e& p2 y+ V                while( !rs.IsEOF( ) )    ) t- _: n& [/ s2 |5 i
                {
$ y- o" K- w7 F0 X) T                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); 6 r, u9 ~+ K% ~. a$ O$ V0 |
                    for( short index = 0; index < nFields; index++ )     
$ z& q, h* T7 T+ b9 l                    { 3 k  F6 s( m" I8 E0 w( F  S8 _. k
                        rs.GetFieldValue( index, temp );  ' g2 V7 h; `+ m( B5 @, y+ Y% u2 B3 X
                        cylinderValue[index] = temp.m_dblVal;                                    
; H" m0 |6 P- G/ t2 T; T; Z                    }     2 F8 T5 e3 d0 L6 j2 ^
                    sprintf(cyl_height,"%f",cylinderValue[0] );
# f1 Y8 i% h- H8 Q. i/ G                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 7 S5 \' G. ^; F5 x8 V7 K

' m1 f7 F& P) M" }! B0 P2 r; H                    rs.MoveNext( );  0 m1 y; `8 D6 x/ A& [  _3 z
                    free(cylinderValue); 3 a9 ]% ?; S, k1 ?0 X
                } # c3 D3 W1 R" T2 \+ T7 F9 a4 L
                rs.Close( );    // 关闭记录集
% a6 B: f; d7 ]$ S& V! v            } ! L0 M) f8 `" V6 `
            Database.Close();   // 关门数据库连接         6 P3 V9 s, I0 g) }9 I- y/ p, Q# L  T! {
                }
; R; Z6 i+ L/ ]% b; s    }
$ z: ]8 X7 J; S1 K% ]+ W/ e2 v) J
# H& q8 C' L& D! D5 V8 ~
7 V4 l6 ~9 S- O) W* `caTCh( CDBException *pe )   // 出错处理
) G1 S. L+ i- x, I    {
3 F  \4 ~8 v! N6 T2 D! y1 E                AfxMessageBox( _T("Exception!" ));
8 g# J) d" r  d+ G        AfxMessageBox( pe->m_strError ); " g: K1 q8 K' K
        pe -> Delete( ); ; s1 j% z8 A% `4 L+ }+ M
    }
6 U$ j7 L9 Z- ~# E! D( r7 t2 j" d$ k2 b}% ~5 Q2 J9 c$ k
+ X& A3 f9 M9 G

- c  H6 @; P2 Y. L; [* {1 d
' n8 k3 B. u8 T* w3 Y% E4 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了