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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
/ C7 |5 F& a* @* v4 I, e6 `% q2 k2 a
头文件,加入 #include <afxdb.h>7 [  L( l; F8 |5 d" w

. x; _5 }" j; s/ u' Zvoid excelTest::do_it()+ G$ Y. Y9 m6 X3 D, B, \! X) `
{9 I; v/ l8 E  \
5 V  J/ W  s7 H: \* P8 Y
        // TODO: add your code here* l5 S+ z& E4 Z( N! n/ J. E

9 _& z1 Y+ g7 e3 `& r- ]0 n        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
' |) W0 w4 I8 D5 L7 C, ^- {    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
5 M7 K4 L8 G$ [: ?% n( I  f5 S    DWORD     dwOptions = 0;    // 设置连接的建立方式
0 q# Q7 i, A+ F% U/ p    CDBVariant temp;        // 数据库数据通用类型
8 n6 D# e# J6 x! j1 k- I    int result;             // 储存返回值的变量 ' E9 b/ s. h+ i! c
    char cyl_height[133]; * N: Z) ]0 c: y6 C
    char cyl_diam[133];
! M6 q& s. Q7 j    double *cylinderValue = NULL;  
" K" \' @. n! Q; {0 A% f) C, c9 D* V( W; M" p: V4 }8 O
    try
2 \% C0 j7 B. Z- o    {
! S  V# e2 n/ Z" }5 Y; P                0 l# J& ]/ W; q9 H' `8 S. K
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 1 R$ ^; L/ R1 P) J
        if( result != 0 )   // 如果成功打开
' }* |3 d! v7 D' e. W0 R        { - p, H) S+ {' T7 t* G% v0 \* T
            CRecordset rs( &Database );  // 定义记录集 # W! Y5 v# Q7 n$ L
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  6 ~5 `/ g* D3 y; }: I6 F
            {
2 _+ K/ s- g" |* S9 h9 _                rs.MoveFirst( );     
4 [9 l6 U9 l5 q: i- `                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
( E4 o0 {5 i$ Z( ^9 H, `                while( !rs.IsEOF( ) )    0 C& e3 B" q+ b' r% U/ w
                { 5 c7 }4 e% }9 G' ]2 c
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); ) [, u, x) p0 Z2 [/ _8 X3 Q" s
                    for( short index = 0; index < nFields; index++ )     
. H: X/ ^9 D1 \9 r                    {
  k7 h9 r/ }# h) p" K                        rs.GetFieldValue( index, temp );  
% f4 c0 B- C5 Q. T$ F+ x+ w6 ~                        cylinderValue[index] = temp.m_dblVal;                                     + c. S' w5 ?, F& U$ s
                    }     . ~  a/ ?+ s/ o3 S3 x4 {
                    sprintf(cyl_height,"%f",cylinderValue[0] ); , g; f2 i6 n& Y# M0 w4 l4 q
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 3 B' y* N; a% l3 ]+ e

) j5 g4 V9 E+ R' n1 F                    rs.MoveNext( );  ( x8 v( q1 w' d9 Y& w* n6 H
                    free(cylinderValue); ( f  e$ m* f, q- W. w( g
                } & `5 _/ l; h8 C* u. v
                rs.Close( );    // 关闭记录集 0 T8 M4 Y. @6 }; T0 V/ q' @1 E' F
            } / T3 D! `; @+ b0 Y8 E$ ]
            Database.Close();   // 关门数据库连接         % q/ N2 ]& p6 \" H. a, K2 P+ c8 \
                } ' q. t3 B, q8 t7 J- h
    }
( [+ @0 S& E2 o/ d! m
+ P- A# g3 f% V
; Z' {3 l: \4 V  kcaTCh( CDBException *pe )   // 出错处理
) }4 m) B5 _0 L. Z! C; A    {
* |3 o, {+ c- j- O                AfxMessageBox( _T("Exception!" ));
- H; J) H$ r: O" }- N* K6 l+ X        AfxMessageBox( pe->m_strError );
  R+ G# S8 ]; m. H' T& G        pe -> Delete( ); / y; j4 D, `$ Y. z
    }
  z3 w) k( I8 E, Z5 x}
8 P- u. q# C3 H6 ^" F2 l9 e4 o' {1 ~4 o3 x
% }8 \! |0 j1 q, @6 y
$ l8 L) H9 f6 C' ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了