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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

9 t! N/ T. ^  c头文件,加入 #include <afxdb.h>
* Q: k/ o8 J  S! h/ u+ u: t, v. F3 C* X
void excelTest::do_it()
$ Q# ]4 `- b) t{; T1 s0 P* K* W0 v7 Q/ q" C( K

& G4 g" D+ \8 W4 N: B. b: o        // TODO: add your code here% K2 n) d, C: U6 @* g

& i* m7 P3 T  K; ]/ ^( p4 ]        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse 6 ]4 R% k6 j( f/ H
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
/ H: U# r8 o8 g" X& G7 V& Q    DWORD     dwOptions = 0;    // 设置连接的建立方式
) s" `2 v$ ]- P( X5 N# \  T4 X    CDBVariant temp;        // 数据库数据通用类型 , q* ^7 Z* I0 U
    int result;             // 储存返回值的变量 ! `' j; @3 {5 i- I; [5 V8 T, o
    char cyl_height[133]; + a$ z# u& N8 i
    char cyl_diam[133];
. f1 w! g" K; C0 `9 z0 w5 V) ~6 [  f    double *cylinderValue = NULL;  9 w8 K6 J) B" Y2 a
* O) w" d2 h$ i5 s* \! Q
    try
0 I2 S( W  ]( ]% O    {
8 t7 W2 V+ x3 {5 |3 I3 f+ L* b$ T$ C               
) b% j7 ~6 x' B0 z        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 8 B" Q/ j# d) B" n+ R. D
        if( result != 0 )   // 如果成功打开 . F$ A( q) f, {! g) P7 }
        {
( c4 d0 d+ B4 }; H8 \% s            CRecordset rs( &Database );  // 定义记录集 + K5 m; ^0 z; Z1 E, ~; r0 ^6 w
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  
& P0 {" y& Y! x* z+ g) A1 R$ Q            { 5 k1 S) p, g, Z5 i% g
                rs.MoveFirst( );     # X4 b7 t1 r( ]  ~
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         & t, R, |0 s8 R$ p3 N* N! ?
                while( !rs.IsEOF( ) )    - V- U$ ]* |$ R" M$ Q
                {
% [+ c- q3 ^7 i* g8 T: q                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); ' e/ h) v7 f# K
                    for( short index = 0; index < nFields; index++ )     . W7 ~( D; r9 n
                    { . {# L( @7 ^/ Z6 B; E' _
                        rs.GetFieldValue( index, temp );  
- I0 Z* }, b: u( f                        cylinderValue[index] = temp.m_dblVal;                                     0 ]+ B6 d/ Q5 t# d: B+ H3 ~
                    }     3 k& Z, B4 X7 \8 a8 T
                    sprintf(cyl_height,"%f",cylinderValue[0] ); " V- E& A8 V6 N0 Q7 u
                    sprintf(cyl_diam,"%f",cylinderValue[1] ); % m/ Y# v  Y+ G, R! y. D* l+ d
  k5 M' J9 h# N, Q( C2 [
                    rs.MoveNext( );  
: r5 F9 V! ]8 k4 G/ u) ~                    free(cylinderValue);
  V; ?# a  @" s; ~  P- z# j# }                }
' S/ }9 C- H' _( A                rs.Close( );    // 关闭记录集
+ ?' |7 l; O2 k4 K! Q/ w5 w            }
  h; q% O9 H9 C5 `( B8 J0 D            Database.Close();   // 关门数据库连接         " J$ X" l7 k( I' H+ s# o8 C3 e( h
                } ' s; E. O1 U2 X
    } 8 Z  I1 V5 G; v  e4 r' x
1 d  N  D0 x. J  m4 J9 {# B; U

1 `# q* K( i6 F  O1 |caTCh( CDBException *pe )   // 出错处理
) N0 k- H, K! R) a/ n+ V    {
/ |$ }4 l# Q! [4 v4 x! S                AfxMessageBox( _T("Exception!" )); 7 W: q) \. t* e! Z
        AfxMessageBox( pe->m_strError ); . E+ n! e3 R; n# [; ^
        pe -> Delete( );
- Q" ]% o8 a' t) r( |    }
0 N8 p/ s3 D6 n0 d2 N) n}
+ ~# ~' L& s. u4 g( ^6 h/ E% i  [! w# s1 p6 d; {

2 f) f' w# T. v. h5 x( u5 N/ }8 H" R$ 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二次开发专题模块培训报名开始啦

    我知道了