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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

9 Y5 D4 Y$ @, J% k# L头文件,加入 #include <afxdb.h># K( H- |# D1 m  }8 ]( ?( q6 d

! O: g( t& M# n+ g) Mvoid excelTest::do_it()! M9 Q0 J/ w4 G: `5 e
{
6 @& N6 y" {( t
, }' h, l9 j5 H6 \1 w: K% Z( o2 I        // TODO: add your code here
( S8 B/ U% K5 @. F4 j- m% q
% @: [) Y$ H1 Y' y        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
7 m+ |- |8 E* b' U    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
5 K9 z# g% Q) F6 L% g) e    DWORD     dwOptions = 0;    // 设置连接的建立方式 & |' i5 q( m5 l6 P" k
    CDBVariant temp;        // 数据库数据通用类型 8 R! A4 G  _3 ?+ @
    int result;             // 储存返回值的变量
, ]  ]4 l8 e, f) f3 B- J: Y    char cyl_height[133];
0 ]: Z9 c5 m- t5 W* w* [    char cyl_diam[133]; 0 q. G+ H' X. w. v, D% D
    double *cylinderValue = NULL;  ( I- g7 K- _. W. t: y. u

( t9 G; n& D9 i    try # G5 p+ `' Q- K# e0 ~  _
    {
+ p* a( Z% r; s. w0 B- j               
; N, t9 R! d, z0 P7 g8 m- P        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 1 o9 D4 u7 ^1 s  z; V7 I! b$ B! G
        if( result != 0 )   // 如果成功打开   V0 d$ d/ z8 F/ c* O4 \% R5 A
        {
. [# T6 B1 R. k. v! e6 F+ F            CRecordset rs( &Database );  // 定义记录集
3 N% ~8 ^$ u" W" l- b* ~            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  5 S& y1 Q4 ^$ m5 ?7 [
            { 0 J3 `- H9 T3 H  e+ c
                rs.MoveFirst( );     1 k; j6 [& L# g) ^
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
' U& u# T' q' g' }+ l2 }                while( !rs.IsEOF( ) )   
; h$ x& X$ m5 I0 i( r6 o                { / j; q2 l% \0 E
                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
4 l- x! u/ w! _' [* Y9 @1 @                    for( short index = 0; index < nFields; index++ )     
% h% E: U& y) l, k+ S                    {
7 S, w4 U; J. V, a6 i( Q1 D                        rs.GetFieldValue( index, temp );  
. T' @1 `. c) q3 T- y: d                        cylinderValue[index] = temp.m_dblVal;                                     & E, A1 M+ H$ Y6 J2 e
                    }     . D0 R8 b8 M: o
                    sprintf(cyl_height,"%f",cylinderValue[0] );
' U, `8 q' G) I1 M                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 2 E( I, {. ^1 |
8 a' B2 f. _8 D
                    rs.MoveNext( );  3 O4 l0 T' s( ~& K
                    free(cylinderValue); * a) e/ H$ J9 y2 D3 M7 p* r
                }   t: K# V+ w4 p% \2 k
                rs.Close( );    // 关闭记录集 ) Q0 X$ x8 O7 M: J
            } 1 N- k# _) X1 s$ }9 A; p- k  L
            Database.Close();   // 关门数据库连接         
- h9 b$ U8 m( Z1 ?) _                } + L9 t8 Y  n9 m' U/ j
    }
3 N- @' m. X. O  n; {( J( {' o! A( p) d! O' [- M

9 M2 {2 h1 [) f9 U5 ScaTCh( CDBException *pe )   // 出错处理
& s% |' D" s$ K    { ) c9 x7 F# J# t6 @: L6 U) N8 M; A
                AfxMessageBox( _T("Exception!" ));
. o& n, {* S( D: c- ], s; `        AfxMessageBox( pe->m_strError );
: P/ ?' a2 |* S2 J" l; W        pe -> Delete( );
4 i: I4 C+ ]" X    }   u+ J- J! }; L6 a! z, d
}3 {& ^: v6 y5 d& |' [/ U) K

' a/ Q/ u$ C  z( ~3 v7 o* p1 E5 ?6 z" i( u$ ?* i/ \

! s- b( ^) i5 {( o! 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二次开发专题模块培训报名开始啦

    我知道了