|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
1 h# }9 o1 p# g4 o1 W2 p头文件,加入 #include <afxdb.h>4 [ B, u2 n- B+ f
, J6 h z2 H. d- i. Dvoid excelTest::do_it()
/ x/ U0 D0 O% e# {/ R. x& w{
; b# t+ _4 V4 D% N+ C" F# [" Z( D5 t% A9 r( p+ w$ P2 G/ G
// TODO: add your code here
: d, G4 h |! S9 f2 `5 r1 d0 M3 h8 \# M1 c
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse ! o2 l. b8 M9 E: n2 R
CString SQLCommand = "select * from plmhome"; // SQL查询语句
9 K, H. n; } {7 p6 D8 W DWORD dwOptions = 0; // 设置连接的建立方式
) ~' R' k1 t, L2 k- | CDBVariant temp; // 数据库数据通用类型 % V8 y9 }. b2 `+ g5 j
int result; // 储存返回值的变量
, i* {, B4 Q' R. d) l: z: a& A char cyl_height[133];
3 @: y* H" k, a char cyl_diam[133]; o- V' k: M5 u) M- c3 h* E3 W
double *cylinderValue = NULL; * p3 M6 Z! h3 o( X
/ ~1 a4 x3 W2 }. Q7 Q
try
8 x; N$ _7 c0 }. ` {
( ]# ~( S/ H/ m! ]. g
2 D% T1 W3 a0 |4 b( C result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
% ]8 s7 B: H1 O: I& e2 t' Q4 w! D if( result != 0 ) // 如果成功打开 % e3 M6 i" p" o( o) E
{ 6 d1 A# A- p8 N1 I
CRecordset rs( &Database ); // 定义记录集
" I9 a( j& e1 z' Y3 R0 s if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
) k( k6 N+ j, J$ _ { 7 L U) `/ |! }4 Y! r
rs.MoveFirst( );
$ l' `2 D+ I$ ?7 N: p3 T short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
' W/ d/ v4 ~+ }+ O0 N/ s) \' @9 I while( !rs.IsEOF( ) )
# F/ Y* |, d, @( d; t( ~$ u {
: k! }2 U8 R! h# k; o cylinderValue =(double *)malloc( nFields * sizeof(double) );
0 z( X- |, U, z9 |* Y' B( _7 o for( short index = 0; index < nFields; index++ ) ' ~3 w& D$ X: D8 o. E
{
" X" p; T" z0 o" Z: M$ w& ? rs.GetFieldValue( index, temp ); $ W9 Y, u. ^/ p' i% \6 b
cylinderValue[index] = temp.m_dblVal;
: g2 G8 ~; p' q: c4 f }
) z% R" v* k* l8 ^8 l sprintf(cyl_height,"%f",cylinderValue[0] );
$ ]* g' _0 ~# I$ G1 [8 i9 J* g sprintf(cyl_diam,"%f",cylinderValue[1] ); $ g& r& q' n5 p
; q: B9 A. z. P, i
rs.MoveNext( );
2 w4 Y$ V4 b, Y: q free(cylinderValue); - w. j5 h: R) w3 [# I7 y8 n/ k
}
/ O3 x% V; }. c. T5 A! _ rs.Close( ); // 关闭记录集 9 V1 M/ Z$ F2 ?% B
} ' z$ K9 Y; C2 v( q. [; s2 O
Database.Close(); // 关门数据库连接
8 M5 d* A: M: I4 A) h5 n4 x2 p }
. Z0 ~! |( m" k R; q$ M } c( C F- i$ [$ R* l+ H! X
4 b4 `6 q# b, \# A" Q0 Z% p
) K4 W- Y9 C+ C2 H; D; mcaTCh( CDBException *pe ) // 出错处理 & h5 D( b. ~! ?; F& u- Z
{ / n3 [5 T1 {! h! T% B0 i' O
AfxMessageBox( _T("Exception!" ));
/ M/ d0 q, t" ^, Z( a3 M AfxMessageBox( pe->m_strError );
3 N- d, I& L4 E2 K, D6 j4 \ pe -> Delete( ); 1 U# ~( T- v$ J- Q: b
} F0 x( q5 d4 Y- ^. n) H; j# [: n
}
6 `9 l% S+ y6 O# h
% |1 h: ]; V! |7 g/ M2 e2 b+ d6 V; B! A5 X' o y7 @
, h' I8 [4 h& T7 K( T |
|