PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
; h+ n! ]5 A2 E. A1 ^6 f9 r
头文件,加入 #include <afxdb.h>
& n6 t, ^2 ?) W, H0 S
. P. Q: ]1 H: {/ ^4 r. svoid excelTest::do_it()
1 _  v+ i, V1 H. r. b{* v& ?) X5 i! n4 _

" e+ P' e* L% d" \! z; h6 O        // TODO: add your code here
7 a# A, D7 ]9 t2 N2 _' ^0 A5 N/ F9 B0 O3 _7 f) w; M
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse " r2 N/ [3 l2 R, A/ S
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
* b  L% K: a5 ^. `, g4 b  b# M. f/ p    DWORD     dwOptions = 0;    // 设置连接的建立方式
- n2 a' k5 v3 K* J3 L/ y( J. }% d    CDBVariant temp;        // 数据库数据通用类型 . T" ?3 Z4 M* z; d" J* U% J
    int result;             // 储存返回值的变量 2 ]+ T: R' q% v% P. m+ f: I
    char cyl_height[133]; # s; ?) ^8 \% T& A) k
    char cyl_diam[133];
, T) h( a% e2 h" Q  ]/ ]6 u6 u: H# e    double *cylinderValue = NULL;  0 F- ^" q( X: ~# ^

0 f/ h9 c  `. J8 e    try
7 T1 q- U( A, ~    { 4 Y% E' Q3 F0 E3 R/ N9 e
                6 V. S+ U, L, X
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 $ v1 @! q' H8 P  Q- v. R
        if( result != 0 )   // 如果成功打开 ) X# K5 U8 F' f" J) q0 F
        {
5 P* l# Q0 r9 y2 K1 g: s            CRecordset rs( &Database );  // 定义记录集
5 }& r4 _+ `3 g1 ~7 S- @) W* q, ]6 R, _            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )    B" C6 q7 W6 Z8 g" \3 X7 J
            { 6 u! F2 _( k& `# z5 k  S0 W- M5 z
                rs.MoveFirst( );     
* y  @# j  B% y* S                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         % a& l5 q1 q' }) h; l
                while( !rs.IsEOF( ) )    ( {) ?, n' O5 r. f* I
                {
/ u3 x& C9 U3 K% h                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); + X) b/ l8 d- h1 u) G$ ]
                    for( short index = 0; index < nFields; index++ )     
, g3 c0 F: u$ d$ P+ b                    {
2 ~- u! L9 ?5 M+ }+ U, A+ z                        rs.GetFieldValue( index, temp );  
: z  T  Z9 _5 x6 [2 L7 c. g                        cylinderValue[index] = temp.m_dblVal;                                     8 m5 n2 \. r% ?, H
                    }     . Y/ a2 R6 E/ n# t/ I
                    sprintf(cyl_height,"%f",cylinderValue[0] );
7 l" p  @8 |. ^                    sprintf(cyl_diam,"%f",cylinderValue[1] ); ) C, `, R' V9 u3 b
9 z' l9 U2 \, \( V( D
                    rs.MoveNext( );  
) N, r' r. n5 j                    free(cylinderValue); 4 U  e2 G+ n8 }/ l: J
                } 4 f! d1 ^% ?' f, ~8 W0 n4 X
                rs.Close( );    // 关闭记录集 7 z$ U) ?" H" e' V7 @! ]; ]. I
            } # y8 R# z- X+ ?+ u1 U8 y3 A
            Database.Close();   // 关门数据库连接           }" G4 o- x% Q- }  L6 N* z
                }
+ a, @0 x! i5 C9 q/ D    }
: J; U( i6 m$ U2 [* q/ [7 Y& X8 M+ W7 L% m% [& ~
0 V6 {: {' I0 K" }
caTCh( CDBException *pe )   // 出错处理
! B9 W- E& D5 x3 s. j    { " |  p. U/ A6 f5 k' T2 c
                AfxMessageBox( _T("Exception!" ));
! V! ?9 R9 \6 L$ O$ L        AfxMessageBox( pe->m_strError );
! i+ s- Q8 l; I( _, c        pe -> Delete( );
8 r& a' L. h7 b" x    } - ^8 @; A" B4 K9 O( Q; o
}
9 Z5 f. S- M9 @$ x  H; n2 V8 m  X4 x

: Y0 P: i% Y8 {9 T$ B- B/ X$ F7 l0 b: D; i7 [. H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了