|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! z9 a# v6 m$ f5 w; P. M- G
头文件,加入 #include <afxdb.h>+ B+ t. K: e" d( g/ K" H: j* c1 Z
- @1 n! @) ^- [void excelTest::do_it()
5 [# V% ~9 B, E0 _{. L; a$ Y5 O2 O# @% _+ i5 {4 r; v
" n ]$ |; v% M' v! D1 j1 F
// TODO: add your code here+ m: ]( n0 m r) p5 }6 i6 r, P
" B5 d9 N9 b7 ~$ ~) T
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
0 [" _/ g; Z, T CString SQLCommand = "select * from plmhome"; // SQL查询语句
1 A# a* }2 q a" g% C DWORD dwOptions = 0; // 设置连接的建立方式
; `8 |' G" G7 e$ o3 U CDBVariant temp; // 数据库数据通用类型
3 O+ c- k' s2 ? int result; // 储存返回值的变量
7 ^5 _, H( d# A( [/ [5 `4 h4 A char cyl_height[133];
5 u P. G- _" \. D2 r char cyl_diam[133]; 1 `& d" b0 x, @2 w4 s5 X9 S
double *cylinderValue = NULL;
( n+ N9 F$ o- |$ K' m. g/ {* P' C) A; F" y) d* a
try * J3 v' `/ b+ H( J+ P7 K% b# ?$ n
{ 7 j: Y0 U+ I l9 |: s4 H A9 P
9 R- x4 G0 k% P result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 * A, n5 D: O* f' t3 | }
if( result != 0 ) // 如果成功打开
& Q; K g' T7 Z/ a9 S( Z# \( w {
2 l3 G9 S+ l$ S, z2 S; c( | CRecordset rs( &Database ); // 定义记录集
! y% n! }- h! A( s# L; O if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 1 @* x0 H4 s0 ?
{ % D( `% X, o# J; q' C
rs.MoveFirst( ); 2 c, [8 v5 B+ x/ z) c3 C
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
: U2 l/ i* k( k5 W$ [ while( !rs.IsEOF( ) )
$ w9 C9 j7 e! w6 R- Z3 ]3 D {
; b6 S! X; w9 Y9 k cylinderValue =(double *)malloc( nFields * sizeof(double) ); 7 a3 c/ P4 R' q1 L! h
for( short index = 0; index < nFields; index++ ) : r; W- e8 j! @% J# V
{
! K6 h/ [2 l) s* b! k7 i9 M rs.GetFieldValue( index, temp );
3 L. p7 L3 ^/ t! { cylinderValue[index] = temp.m_dblVal;
* H; S# h6 U! j$ j7 _9 x3 g } ) J' D5 f2 k( h; ~% q! u0 c F3 s0 l
sprintf(cyl_height,"%f",cylinderValue[0] ); $ X$ a' B( A/ W4 P4 j! [( G+ Y4 @
sprintf(cyl_diam,"%f",cylinderValue[1] ); " h* C0 Z% N9 q& w7 ~" B
: d }" g. Q/ ]& Y rs.MoveNext( );
5 w1 _ H- Y% C9 ]% M7 |$ _ free(cylinderValue); ) {, P1 v8 A7 w$ Q$ {! `+ \' V2 S
}
8 c& _. {2 x, i: n$ M5 ~ A+ E rs.Close( ); // 关闭记录集 : m( K9 M; S0 [' u' ^& s6 J& L3 h( m
} 5 H7 R) I# p5 e1 _
Database.Close(); // 关门数据库连接 1 w; ?9 x6 a% x, p% X) Y" |7 G' i# t5 J
} ( `2 Q4 y) w0 U _8 d# V% K/ X% p
}
; q* e! R, M. z. x
: }6 D1 @) O. q9 o" W
: }) W% Z) z3 DcaTCh( CDBException *pe ) // 出错处理
2 G% X7 p* }- ]( [2 X; X p7 C! U- M {
2 k- x( o# Q7 { AfxMessageBox( _T("Exception!" )); # [ V- W/ O8 @, Q( U) q& M3 o
AfxMessageBox( pe->m_strError ); * C* Z/ n9 E' G! X
pe -> Delete( ); # S0 o9 v J/ a0 s
}
" u( G5 r2 K: k5 S p9 G}
# x" x$ V! G% y! e0 m9 T2 d+ V4 P) m" w# r% L
2 q! o2 o7 y3 H2 E
: m. V7 x/ e9 x( G8 F& ]! e |
|