|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 C% y7 G y6 G' h+ T
头文件,加入 #include <afxdb.h>% s' p+ G* |7 M) @5 t
: D0 E! {6 ^; D9 Fvoid excelTest::do_it() F4 R' E. z$ V" w. C) V
{' B. q) A8 ^2 K) }( Q$ o# B* @
8 v* F8 F& a* V
// TODO: add your code here2 U( `1 G- _! ?
, G7 |3 r7 A! @9 H, C/ `; s+ x
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse 0 P+ G9 _* S7 l' x8 k8 l
CString SQLCommand = "select * from plmhome"; // SQL查询语句
3 U4 S3 V3 ]6 o% d& w DWORD dwOptions = 0; // 设置连接的建立方式 - Q+ ]% ?$ _, D# a) `/ @$ `
CDBVariant temp; // 数据库数据通用类型
}( T! A, C( u int result; // 储存返回值的变量 ! D M; Z- X/ j9 e8 G- {# ~
char cyl_height[133];
; t" k$ J% _: ^1 s: B* @3 y' a0 r. [% R) u char cyl_diam[133];
7 K4 a& E2 i6 p! |5 [ double *cylinderValue = NULL;
f4 A. j: D ]% Q' ^+ u1 E( K6 ~" i* c( J" B0 m: ]6 ?2 V
try
+ `' z3 r. Y M: {6 C { 4 a/ n- p& `0 F+ I1 A- x+ N
6 S. i7 ]$ s* _/ m2 X0 _/ { result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 3 H6 W5 z" p; n! C5 V& F
if( result != 0 ) // 如果成功打开 3 X' @- H$ _8 Q. G" u% x9 V
{ 9 c% h/ \3 }- S
CRecordset rs( &Database ); // 定义记录集
( I4 V J5 Y/ G& `' _ if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 3 h( Q% \$ m8 v; L4 e; i4 Y
{ * R3 k& ~6 V+ W# T- n
rs.MoveFirst( );
# E) d+ b6 q# P5 G8 {( {1 v+ _ short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 ' C3 T2 i. |5 C, x; w
while( !rs.IsEOF( ) ) 8 {* d. ?6 w) w- l, e' K2 c) z
{
. D- K4 G% i) t9 o cylinderValue =(double *)malloc( nFields * sizeof(double) ); - m3 V8 ^2 J J+ x' T
for( short index = 0; index < nFields; index++ ) 4 h* p }, a( R$ e2 H* X$ T
{ 2 }; v- ^# c6 M+ t5 Y: k7 J% g3 H
rs.GetFieldValue( index, temp );
7 m" p- g O; j _0 ?" y8 t cylinderValue[index] = temp.m_dblVal; $ a; a* @" D1 o9 h5 \( _" c
} 3 g8 ]" X, F K0 F2 Y
sprintf(cyl_height,"%f",cylinderValue[0] );
. c% C6 l. e& S2 A D4 z sprintf(cyl_diam,"%f",cylinderValue[1] );
) P* A8 M1 k7 Z% U5 J+ b, r6 u; l/ ?
rs.MoveNext( );
# e: q4 O# V m, T3 { free(cylinderValue); $ {! N: ]9 i6 D4 n, [! U7 p, g k$ }
}
5 [% N2 q% \0 A rs.Close( ); // 关闭记录集
8 i) e: V, V. J } ?. @, L5 Z& Y0 W5 ~- k/ J
Database.Close(); // 关门数据库连接 3 D6 a- G9 a3 c8 g
} ( ]8 D- s8 q+ k+ k. l% U6 r0 T
}
0 O- z8 D( T ]$ U: z; Q' S0 I
' |7 C" R" y2 _2 o- q5 K! m0 \3 E6 j. M S8 x- y8 y: n
caTCh( CDBException *pe ) // 出错处理
6 h1 K+ z, E4 S2 {+ T, Y { ) g7 X0 G! ~3 p8 s' [1 h
AfxMessageBox( _T("Exception!" )); , `; R1 ^( D% ^' H; u9 i
AfxMessageBox( pe->m_strError ); % c( D7 z: w9 f" r' d. U! x/ T
pe -> Delete( );
8 \9 O) f' p, [: }. _ } 9 c/ q5 Z0 h9 {! A" ~0 V* B- q
}8 y8 L2 l5 ^+ p+ s: |8 C: Q
- l4 @8 Y% K' t/ d" ] k, e7 T9 Q: _) a. d4 _: Z5 A! b
2 v( [# o$ t: S: E/ `
|
|