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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
5 s" b4 p. w6 I& S2 [2 i
头文件,加入 #include <afxdb.h>9 X! h% q, v7 `) z% Q+ `5 F! R
7 u# M( T  V: `
void excelTest::do_it()( t) N3 K" J7 w3 T9 @
{; m5 k$ N2 t- T, L6 j0 _) y

" Y" f. h  {$ }1 G/ u        // TODO: add your code here1 W8 S( K8 A6 x5 {

& E; F* ~% `: L9 Q% v        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
3 V" n  K: f7 Y    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
# d3 P- e) T9 H    DWORD     dwOptions = 0;    // 设置连接的建立方式 4 ?4 \! H+ g# W3 p- s  Y) }$ G
    CDBVariant temp;        // 数据库数据通用类型 % R: v  y+ K( Q2 D1 c; E/ M# @
    int result;             // 储存返回值的变量 ) o* {1 g6 S* ]4 G# G
    char cyl_height[133]; ( H6 f$ O, i" o# d. i
    char cyl_diam[133];
) X/ e  G1 |1 ?1 ^6 j- ]8 G    double *cylinderValue = NULL;  
5 p& _" m! f  U' ]# w( o8 ~1 o. X3 ?$ o( Q# n2 K) j: U4 x
    try 3 v; J, W3 E, s
    {
* i& B- D6 ?+ Y3 W                " @# _4 c& i% z$ h% g- R
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 6 A+ N* ?" y7 z  I' n. P
        if( result != 0 )   // 如果成功打开 7 ~6 c$ m* ^; r  I- D. J  m
        {
2 ~( x, |0 L( E7 K1 V, ]; C- l            CRecordset rs( &Database );  // 定义记录集
. u. ?- W, }" k5 T8 i            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  4 y9 R+ O' i/ Y7 {, r: I. l& l
            { # I: T! B+ @' i, R! D
                rs.MoveFirst( );     
# l5 V) `( Y* g2 v                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
. m* g+ ~  I* `- `; Y                while( !rs.IsEOF( ) )   
, _/ ]. c, V. e5 z5 i                { ; B$ [+ B% g  f, s( W
                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
6 S+ B1 i" F1 _( r9 T) F/ {4 x                    for( short index = 0; index < nFields; index++ )     
8 O4 S/ e2 s% i; a$ `                    {
; ^8 W! k* D. s* k, b                        rs.GetFieldValue( index, temp );  4 w6 U. d, H' V
                        cylinderValue[index] = temp.m_dblVal;                                    
: ~% y1 @3 v# }6 G& N6 {; a                    }     
+ X; w& [. y; ]9 \4 G                    sprintf(cyl_height,"%f",cylinderValue[0] );
+ E! a8 W, v6 e% c) P' c& t                    sprintf(cyl_diam,"%f",cylinderValue[1] );
9 S  |2 A0 f* A3 t! Z  H* J7 F
/ z! L# m  O- l* @- i" s) m7 @' R                    rs.MoveNext( );  3 g+ U; r$ J3 F- r( I$ |( P9 a. n* e
                    free(cylinderValue);
& D8 j" C# m: O; m                } ! I4 i2 i5 y4 f4 n" v
                rs.Close( );    // 关闭记录集
( K- Q9 f4 W- q, S5 i( J1 V- I            } . b* f# R$ F5 {1 k1 G. `
            Database.Close();   // 关门数据库连接         ) K9 U# o5 V' U% z
                } . B+ E6 H  n$ z$ |+ A. G
    }
( X1 A9 Z( E- X
  W5 }( T$ k$ k. _
( J9 T  ~4 l( l) rcaTCh( CDBException *pe )   // 出错处理 3 H2 T3 i- E  [. Y" L2 Y* I
    { . V6 w6 B) A# g, E
                AfxMessageBox( _T("Exception!" ));
, V1 b: Z3 n. B; v( L        AfxMessageBox( pe->m_strError );
8 \( \) K$ j1 z& U        pe -> Delete( );
( v8 e  |* G0 I1 p6 c7 x% Z2 a& q    } $ n7 Z) a; A( K9 h5 D
}
+ F4 o$ P2 m; F; d3 }) }
( q. d. C- f3 b- o% U8 Q& f
$ B5 o, @, s* X% ~* Y% m* A2 j. r$ z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了