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

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

[复制链接]

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

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

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

x

( g2 h. ~& y* e. s4 i4 s头文件,加入 #include <afxdb.h>  t' N/ [% u0 d) g
3 F. ^1 M) t3 h- ~$ A& l
void excelTest::do_it(). l6 s! P  Y7 o" r2 \
{
  K: G( w( [+ N* ?+ O8 o
6 G' o  `) X7 |9 f+ n        // TODO: add your code here4 m' Q9 F! E5 k; t2 o- N
- W% }7 _6 a% V3 ^( D0 E- Q  G6 @
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse 9 `3 }' ~/ P) ]' B, S' D, G; w
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
& b0 q- j, r! `# T. ]( q: S8 H, b/ i    DWORD     dwOptions = 0;    // 设置连接的建立方式 3 G! h( \1 X1 `/ \5 D7 ~
    CDBVariant temp;        // 数据库数据通用类型 ! c4 u3 I' F7 I; o# u& T& S
    int result;             // 储存返回值的变量 0 b2 f4 R/ Y( U- e
    char cyl_height[133];
) }. m& u8 F! |$ a    char cyl_diam[133]; 0 W$ _' a- D. [5 W0 @9 Y. D- U2 U
    double *cylinderValue = NULL;  : W, G# q- L+ {) J

  b# x: s, g5 |% p    try 2 v" v' u. J$ ~5 B
    {
$ x" ^8 H  s- T                & j3 u! m& M7 E. L- t; D2 _
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
* p2 _5 H6 \7 u8 m8 [' D        if( result != 0 )   // 如果成功打开 " Y1 X- q" F. \3 F. y
        {
7 C! G& D7 Z) t. _3 G6 p' t/ g            CRecordset rs( &Database );  // 定义记录集 - W3 g4 y0 A+ f: E- B& T4 _
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
4 J" q, e) t) P4 F* f; u  u            { " x( h) g# \0 [: ]
                rs.MoveFirst( );     6 J- P  E8 }, v: ~$ y$ N
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         $ H+ ]% w3 Y* h( j
                while( !rs.IsEOF( ) )   
; S1 r; L& ~* o! G+ {$ P                { 6 X/ T4 `7 C' \6 g, A4 g
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); / w/ h/ x! _0 \5 k
                    for( short index = 0; index < nFields; index++ )     # v  t( \. k. f1 P
                    { & M$ z0 l- f$ H/ _8 }2 e
                        rs.GetFieldValue( index, temp );  ( b! g% P$ o1 Q& c
                        cylinderValue[index] = temp.m_dblVal;                                    
0 x2 U6 l  s! S                    }     
3 n6 O8 O& ]9 `( b1 i                    sprintf(cyl_height,"%f",cylinderValue[0] );
7 T" v8 p3 b4 J% W3 T  l                    sprintf(cyl_diam,"%f",cylinderValue[1] ); 4 |7 n4 s, e9 x9 z+ ^  \

/ P7 d  U8 J" X1 d) g                    rs.MoveNext( );  1 L+ V4 c: h+ F) f2 A- H
                    free(cylinderValue);
, b; _" @! r7 Q                } 7 D" |( t5 Q# R; a% T+ {
                rs.Close( );    // 关闭记录集   i9 Y) q7 I' H$ k
            } ; g" A/ d# y0 b+ h0 E( F2 g
            Database.Close();   // 关门数据库连接         
; z6 N+ x" A2 I- m  @, a                }
) d" B* k# i7 r* i* D9 W8 N    } & z8 N% Z7 }6 N+ F4 F& _4 }. ~) u

7 ~6 g% v, [/ I: b6 c% ^% e* k) a% T6 X
caTCh( CDBException *pe )   // 出错处理 9 U7 B4 Z" M: P! K% Z
    {   {8 I' M+ Z% c) k& v% O
                AfxMessageBox( _T("Exception!" ));
" t4 {' [" ~7 U% N, D) C9 X        AfxMessageBox( pe->m_strError );
- T; T0 J, w) T$ h  ^; J. e        pe -> Delete( );
$ I2 d$ W5 G! j7 S. O$ g% K) ^    }
- }& e/ c- k1 I: M9 t}8 A+ Z8 c9 ~& x9 F

4 G# g; d: {) s
+ q, q+ y/ }- s* r& U. L4 Z% o8 [' T! o; @3 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了