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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x
5 F- v  T+ u/ R6 ]$ |- i2 r  K
头文件,加入 #include <afxdb.h>
" C; c% S, r# A! l' ]/ U, A! a! y/ R+ D
void excelTest::do_it()
. S3 D/ v) h; @: p# d7 P# r0 F) U{
& g% z! Z, ]) n4 j' M" `: V
2 Y$ n9 G& E; |        // TODO: add your code here+ g8 p! @) e5 @9 ~. ?. {

% ^7 @# E( G+ p/ ?" j        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse
" ^7 q  s/ \7 I# P' ~    CString   SQLCommand = "select * from plmhome";     // SQL查询语句
( G/ p# ?$ T( ?0 x4 x    DWORD     dwOptions = 0;    // 设置连接的建立方式
4 j& }+ @2 C" @( X& `    CDBVariant temp;        // 数据库数据通用类型   n5 k+ a$ |: b4 \  e
    int result;             // 储存返回值的变量
' o/ ]" W$ v0 @  m, W3 _2 l    char cyl_height[133];
: P: E0 R. u- z) p9 b1 H    char cyl_diam[133];
; x4 w; |4 F: _1 A" Y2 F9 J! |    double *cylinderValue = NULL;  $ X- @/ `7 x$ q  [9 Y$ w
2 {3 X5 b' r8 O# i: n
    try
2 E+ G- t( @  s3 D    {
( O& w( _1 F/ u/ v4 t( \, `               
. P" ^/ f* w' Z: L2 _  }        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库 & q- I' a5 b* p
        if( result != 0 )   // 如果成功打开 6 f9 a- L$ D- ]/ N7 l
        {
: W9 W3 v( o! J- ]            CRecordset rs( &Database );  // 定义记录集
; d$ t% O5 {0 B+ X% u7 {            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  8 D& Y, ^* b7 c7 p
            {
! c% B* T' }2 ?7 x+ f                rs.MoveFirst( );     
/ D) L+ e9 \7 _! {                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         
. q' W+ x* g1 B0 g- d! i, K                while( !rs.IsEOF( ) )   
* _/ {6 R+ R7 Y3 H2 }                { 2 W3 @4 p# J4 g: E
                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); 2 K  v9 G+ F  W; x9 x
                    for( short index = 0; index < nFields; index++ )     
3 n% |9 D8 d& ~9 d" P- ?                    {   m7 a7 Z' Z  l
                        rs.GetFieldValue( index, temp );  $ @, {+ V9 n; l, q% ~1 b. K' d" |( x0 s; e
                        cylinderValue[index] = temp.m_dblVal;                                     0 H$ L4 A2 w: K* J' m! s7 O
                    }     ' n% W4 `% k9 U" K: D0 e
                    sprintf(cyl_height,"%f",cylinderValue[0] );
* f" K7 r8 ~7 }3 C; q3 @/ Y                    sprintf(cyl_diam,"%f",cylinderValue[1] );
* h1 T* w$ @  b2 w; \# e; r2 C+ d: i* Q; W- A6 _* A7 u
                    rs.MoveNext( );  ' W* ]2 b$ T  ]& t% F  {* O
                    free(cylinderValue); / Z+ r( b7 J' K/ O2 B, c# [) G
                }
7 ~# ^" x$ Y# [                rs.Close( );    // 关闭记录集 + z" ~. d+ h- f8 K
            }
) I# N2 x! h5 d# H: Q            Database.Close();   // 关门数据库连接         $ Y1 ^9 S& n. U! S! o+ T4 c( S
                } " ]9 f" ^' h/ O3 u
    } - Z. V/ Q3 N# _2 d; a
9 M! N4 ~8 Q( E% U6 l: m. L- C

: w/ }+ w& S; X3 s6 [  ]1 ScaTCh( CDBException *pe )   // 出错处理 0 B# _" r% R- i; b8 ^' {( \1 k
    { + M6 ~& @+ O+ x( c4 }- k- N
                AfxMessageBox( _T("Exception!" )); * _1 d) R+ h  {2 n3 V+ p
        AfxMessageBox( pe->m_strError ); & R; `8 p, _5 b
        pe -> Delete( ); 7 K  d- G; P( q1 r
    } 1 Q4 S4 P: P  I. |- p/ w+ E4 N
}" F: l. Q& [. O, U. R6 e
5 e: \* ~" x, j; k0 C" F- M

, ?& Z: s. K% Z" q, U
" u1 G' W* d" X8 c! b) F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了