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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
* i  Q9 _" ~5 Y3 b  Y" i3 H
头文件,加入 #include <afxdb.h>
- F9 [; o8 N, K* u; U' ^6 g& r" j5 `) [
void excelTest::do_it()
0 z% u- _3 b) U; W: K# }{
- n2 m8 O' A1 `- _+ H# X7 X1 @
+ M! ], [" U, q' B: J( Y2 R4 |% U  @        // TODO: add your code here
, ]$ J, X5 u4 H- Z. s. P1 u" K6 k( ~' o/ |+ E- x+ y
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
6 P2 Y" ~, J5 i. l7 c) c5 p    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 1 f! p! U; F8 g1 [- }4 f$ O6 s8 E
    DWORD     dwOptions = 0;    // 设置连接的建立方式 + q: Z3 u" j7 A& }
    CDBVariant temp;        // 数据库数据通用类型
: z( G9 U: e2 ^$ O# D$ O! V    int result;             // 储存返回值的变量 ! C% U7 B  r4 [. Y/ H7 R: U; V2 r% N* I
    char cyl_height[133];
: K$ I$ `- M- z; ]6 e    char cyl_diam[133]; " M% ^' \0 I, F2 c; F0 U- s
    double *cylinderValue = NULL;  
1 p5 c6 U$ w0 {& A" S6 Z# v" m  C7 x  p3 W/ J, W5 b
    try
1 H% a( s1 v# u! t) z    {
; p5 u- ^4 V' O& [* w, E; B                6 V. `8 q1 O, Z& S3 B
        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
8 H) a2 j; Q! j- i' L3 o& B+ D        if( result != 0 )   // 如果成功打开 & ^! W/ ?* Z4 W5 ]0 o5 V' e
        { $ C, n% k, C, P$ }' i7 ^, s
            CRecordset rs( &Database );  // 定义记录集 $ A1 m* r" r/ j1 }" L! w' j5 U0 m
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
# N& h+ H1 h% j" N! g6 I            {
6 j7 h/ I8 g& T6 s7 a4 T) l( h9 D                rs.MoveFirst( );     & z2 i5 c' b6 ]! l' _) s
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
  f9 C! ?$ A" |0 k  w$ s$ y                while( !rs.IsEOF( ) )    ; e+ t2 r) `* E- p- l( ~
                {
* I: N0 A( u; W% \& s1 c2 f0 y                    cylinderValue =(double *)malloc( nFields * sizeof(double) );
1 r& n8 R1 n( V! Q                    for( short index = 0; index < nFields; index++ )     ' w1 `! m* i3 t: B) R
                    {
4 _# Q1 `" e' \! e1 H                        rs.GetFieldValue( index, temp );  
4 r6 |/ k. r* k                        cylinderValue[index] = temp.m_dblVal;                                    
6 a6 `: w9 r! y8 E; h                    }     
. D( O1 q* M: o4 o# j3 Q                    sprintf(cyl_height,"%f",cylinderValue[0] ); 9 k1 o1 I+ E5 F5 o
                    sprintf(cyl_diam,"%f",cylinderValue[1] );
6 h! u  \: U, T" k) q, e% q
' f) u: R9 H3 S- x! H3 y/ T0 R                    rs.MoveNext( );  
, U  a; j) Q# f+ k" s3 g5 f* V                    free(cylinderValue);
5 _( h" u5 e0 O7 l# V& A( {* B, ], h                }
/ k( |, k& G6 F2 a                rs.Close( );    // 关闭记录集 ( k5 }- r! @% J$ D
            } , e+ L9 h* i  l* p) k9 `' T: Q
            Database.Close();   // 关门数据库连接         
* w+ b) G; Q/ a$ e2 n: y. H3 n                } % {% s. I: M5 c# L$ h
    } & X% [5 z( b5 D# d8 o9 Q- E
4 i0 {' ^; H! ?( {* e/ t# K' |
, a* F" k/ \& ]: d
caTCh( CDBException *pe )   // 出错处理
* {  O& w9 p& K2 i    { # G8 k4 u. \2 d, {7 Z8 z% z' d
                AfxMessageBox( _T("Exception!" )); / \; X+ g; V: q  ^- |9 j
        AfxMessageBox( pe->m_strError );
- d. [$ P; F% [        pe -> Delete( ); ( ]3 I3 j8 n' P6 I1 Y9 T/ B
    } 0 J- w6 b% Y2 D3 E" J
}- s4 O2 C' j$ _! k

5 ]+ |& m, O; d* s# H
1 X$ |. @0 ]9 y6 ~/ _8 N1 t; r/ f6 e! z5 s( V8 }, ~; Y! 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二次开发专题模块培训报名开始啦

    我知道了