|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# n5 e% ]; V* E Y; f9 N" t头文件,加入 #include <afxdb.h>
) P6 U \: _- ~. K, _1 q) P8 i7 i* x5 B" b, z
void excelTest::do_it()
3 h/ @! n% f3 P1 Z{" g8 a7 W Y2 I4 x( h
% q! `5 d/ t& o/ v. y$ y9 j! F // TODO: add your code here
; n+ |- C% |& j- v2 y5 A
) X# h7 q6 J9 p* U CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
# M# l1 \5 o# m" z: D2 O: h CString SQLCommand = "select * from plmhome"; // SQL查询语句 + A; |8 |! U1 W i4 p
DWORD dwOptions = 0; // 设置连接的建立方式
! d& r C A8 k1 ~ CDBVariant temp; // 数据库数据通用类型 % I0 W% p7 u; k. g. ^. ?
int result; // 储存返回值的变量
5 _( Q$ \# I. i2 |( S9 m3 L0 V char cyl_height[133];
}2 ~) d$ t2 s) a) s char cyl_diam[133]; 9 n# M' J0 W) H9 \. h" E7 x/ z
double *cylinderValue = NULL;
9 r- s2 n$ u9 d, T
( W% T+ f4 p# Y" c, v4 S try
- p# a0 z% f3 ^( Y {
5 h% ?' ?" q# x 9 \; q7 z- T: N' N3 i/ G, Y. n
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
" [& F3 {: k# X9 n, Y9 q( J if( result != 0 ) // 如果成功打开 " h% G1 H9 s, s x' N' y7 i: \# s
{ & O. Y# E+ S2 E" V8 O
CRecordset rs( &Database ); // 定义记录集
, H" U& M. U# e) s if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
: H2 _, F. g4 D2 u { 7 X p" O! R. R# ~/ D4 j# ]
rs.MoveFirst( );
/ g3 _; F; h/ n& ~- ?1 Z! h0 J. d short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 $ ~7 T2 ]2 r' `0 n
while( !rs.IsEOF( ) ) 1 S u& k# Z) F& G
{
8 G+ ?4 R' o. F# y/ J cylinderValue =(double *)malloc( nFields * sizeof(double) ); 3 s+ h1 z& Z: f5 s1 E. j4 a& a0 w7 d. G
for( short index = 0; index < nFields; index++ ) ; \4 m8 G/ y4 P) Y' M! A
{
5 J W! D0 N+ d9 |5 ~7 w rs.GetFieldValue( index, temp );
( v9 a7 s6 c1 O9 `0 {% b1 g+ d% P9 ] cylinderValue[index] = temp.m_dblVal;
; q0 ? G5 I- d4 i( e: R& g }
]' H( }1 q1 \; Q0 ]0 f sprintf(cyl_height,"%f",cylinderValue[0] ); - n2 Q9 w& z6 D. {) q2 k
sprintf(cyl_diam,"%f",cylinderValue[1] ); / [/ B5 o8 |" s, Z- |& _ a
& P. }# `. I2 i7 U
rs.MoveNext( ); - d. b( H; J/ a/ D2 y
free(cylinderValue); ' ~; E6 ]; ^, e V8 D/ a' }' O
} 4 F' G8 ?7 W5 S8 a: z9 q7 A# t
rs.Close( ); // 关闭记录集
/ E: l; K+ E1 q; {+ D0 @ } . w- _& R8 [; R
Database.Close(); // 关门数据库连接 1 H. G7 J4 r0 H T* l
}
: \( z. h o! d, T+ E x7 u }
, H2 f: _ w; \; M1 S r% X/ p1 T4 x3 ^$ i7 ?: u/ M: {
3 c3 l5 \- O- x. ?/ K, ~* R
caTCh( CDBException *pe ) // 出错处理
$ G2 j& m- a, D$ j( v { - `, s- [; i& q* v3 Y8 d
AfxMessageBox( _T("Exception!" )); ; ~) V) C) F! P2 @& j7 Y# y
AfxMessageBox( pe->m_strError ); % s; ~7 X# h8 F- [! g" t+ e9 Z
pe -> Delete( );
" z' y: b2 u6 I } 5 \( C( }$ l+ A$ f9 y( k/ m; g( J
}2 ]9 o! w* p, q& g
; Z- G' [- i* M8 v- T
( B7 v& c' i# Y
9 D# ^7 j7 ?% x7 m; Q2 ?+ A; z
|
|