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

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

[复制链接]

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

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

admin 楼主

2014-11-10 15:43:38

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

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

x

  b1 F" u( }/ k- ^7 Q头文件,加入 #include <afxdb.h>- h% F4 g5 N! k, \
4 E1 [8 k+ v7 y' u/ K# x
void excelTest::do_it()
, v, ~! i% O' z% J. o{
" k" s! V- h9 y4 N  O7 i6 }4 p3 h% T
        // TODO: add your code here
; o: O7 a) L5 m2 d7 I0 j. d6 j/ N' |6 t+ G/ e5 e- N
        CDatabase Database;     // 定义一个MFC的CDatabse数据库类对象Databse 7 h+ o) [9 @5 N. i$ v: R7 D" Y
    CString   SQLCommand = "select * from plmhome";     // SQL查询语句 8 F) ]$ k0 s) |9 [" J$ }& G, j
    DWORD     dwOptions = 0;    // 设置连接的建立方式
/ ~0 N  N2 W: m) U* p    CDBVariant temp;        // 数据库数据通用类型   ^+ l4 ~! \: H, c& B) B
    int result;             // 储存返回值的变量 # ^: Z1 l  M# w$ U0 T
    char cyl_height[133]; 0 O# g$ i3 ]' \+ _% W8 L4 r8 O
    char cyl_diam[133];
* K- W3 b* k+ D$ u2 q0 |9 K    double *cylinderValue = NULL;  
" K9 k) J. y& k7 B. w+ ~+ a+ G
+ \2 n; _6 a9 R5 _6 y$ K9 o    try
9 D, o5 K- _- s' K2 {4 e    {
: ?1 k0 n: o9 j. y; m' G               
# ?- }$ ^+ Q* A2 ~* s9 c# B        result = Database.OpenEx(_T("DSN=plmhome"), dwOptions );  // 打开数据库
& d! m% V, n7 L' u3 C        if( result != 0 )   // 如果成功打开
& E! F# D% k/ H0 t        {
" T2 G8 h3 P; ^9 o, c            CRecordset rs( &Database );  // 定义记录集 ( u& P* o: p- n  Z
            if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )  ; e3 s/ s* r- r# h; n, C$ K: W
            { , a, Q5 ^: ?! G1 V" _
                rs.MoveFirst( );     3 c2 D9 Z$ e$ f3 v; u
                short nFields = rs.GetODBCFieldCount( );    // 获取记录的字段数目         ! P/ f% _2 \, i4 @: X/ h- Y
                while( !rs.IsEOF( ) )    $ ?: {6 K" E" n+ i2 p4 |$ g) U, l
                {
. ~( B( ?2 j8 W                    cylinderValue =(double *)malloc( nFields * sizeof(double) ); - ~0 }6 q; m3 C) b
                    for( short index = 0; index < nFields; index++ )     
0 B' L0 B5 N/ Y0 _; V' I                    {
; W* l! Z! L3 P. V) }9 }                        rs.GetFieldValue( index, temp );  
  E) h' `( |/ U; M5 m8 M  L                        cylinderValue[index] = temp.m_dblVal;                                       l3 K; R  c, y. H) g+ V7 p# t
                    }     
1 d3 {( H3 f7 M/ N% _7 i                    sprintf(cyl_height,"%f",cylinderValue[0] );
. @! x3 y6 N9 f                    sprintf(cyl_diam,"%f",cylinderValue[1] );
- g& Z' W8 M: z% |( u
" U! U& S/ M: r' f' f8 O! Y( z                    rs.MoveNext( );  * v5 o  x" R2 Q4 v7 o; e
                    free(cylinderValue);
# H4 O4 ~* c. _2 S: G9 p' C                } ( g  B' {. r! d7 `9 J
                rs.Close( );    // 关闭记录集 ; Y! I: w9 q( [( [' [: V
            } ! T4 Q% D. e: y0 X
            Database.Close();   // 关门数据库连接         
; d! ^4 C0 B% C) Z2 e6 |4 F                }
& T4 |6 B& G) t* p: v    } ; b( t6 X; F" b( U) y' _1 ?, i  K

2 \. U- e: i  e* {0 X5 U$ |. F+ C; I
caTCh( CDBException *pe )   // 出错处理 " H" {% Y# [, p+ T; z3 Q6 B
    { 1 M1 F. r  d' l: ~  B, A. Q( c* I' j
                AfxMessageBox( _T("Exception!" ));
( A+ a/ j5 c9 s+ s0 w6 N9 d        AfxMessageBox( pe->m_strError );
" x% T, Q* M# p& B/ F( m: A- _        pe -> Delete( );
  I5 Q- \7 I2 F4 z9 F% X    } ' R; S/ Q3 w+ @4 L% u7 o
}
  Y! F, P9 J8 a1 [8 k, [0 p: j+ A) _  h0 d0 M2 n" j* s% L
3 Q  L, U' q+ h1 [7 `

9 _5 m' R+ X- o3 h$ t% l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了