|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
; J6 Q$ a3 }; W8 O头文件,加入 #include <afxdb.h>, Q! S+ K, J+ J& Z) _
" r( E# H3 S3 b' t
void excelTest::do_it()
1 k! a$ f) j- g4 \0 q4 Y. [: L{
! l( I6 f9 Y: V; t7 u5 j3 z- E
. ?0 Y! O. [' E, {! P/ ~ // TODO: add your code here
( N( w% k/ x) P ?5 r
& h7 }5 @$ [ ?( I: i1 ^, f CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
. f% J# s C, l* v: \ CString SQLCommand = "select * from plmhome"; // SQL查询语句
5 F" E5 r5 @8 }5 q7 C DWORD dwOptions = 0; // 设置连接的建立方式 - ~* K5 n3 q! W: {/ G+ @/ ]! R. S) i
CDBVariant temp; // 数据库数据通用类型
, ]/ S/ _/ B7 Z; {3 | int result; // 储存返回值的变量 , Q2 d. y8 a/ m4 k' F
char cyl_height[133];
5 e7 V. T% |' I5 F5 K8 W char cyl_diam[133];
' P. C, ]" k& Y double *cylinderValue = NULL; ! x( }7 ~ s6 @3 D' x5 [
( f! K% N2 i# W
try 2 {4 S- P- N/ ~6 a1 Z
{ ' ^0 m( M. _2 P8 K0 m w2 k
1 _/ E3 i* g0 q! d- g result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 ; K/ N. n# [8 a4 }$ v
if( result != 0 ) // 如果成功打开 . l- x: Y2 o0 {( r& G) K% D
{ . g& f! v1 r+ N; N6 w
CRecordset rs( &Database ); // 定义记录集
9 d& S5 R; ]/ @# E8 n if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 2 I! D5 ?/ I' t2 f: v' |3 j
{
1 e+ i% f. M& Q, f rs.MoveFirst( ); 9 t; `6 F s5 P" C; O: b- d$ T
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 ) j! B' ]$ }" n9 b2 T; `/ Z
while( !rs.IsEOF( ) )
. E9 T) Q7 c+ @" k. p/ Z { . z8 T& @5 X* C: O2 i
cylinderValue =(double *)malloc( nFields * sizeof(double) ); ! [) I$ @' h: _' P' j& e
for( short index = 0; index < nFields; index++ )
# f x' s" _6 C2 B/ `6 H; n { " C/ h g `2 C' \0 w. Y6 r0 F
rs.GetFieldValue( index, temp );
, c$ y6 e7 w# l+ t cylinderValue[index] = temp.m_dblVal;
( Q, E6 l+ n, S% V: f$ G0 B }
" ], o; Y7 D5 O: n8 S9 w+ k sprintf(cyl_height,"%f",cylinderValue[0] ); * L* ?. W; c5 M7 S) ]4 v5 h: V
sprintf(cyl_diam,"%f",cylinderValue[1] ); & }" O$ ]+ x$ H; N5 o. @
( d0 w1 t, q+ `1 i# g3 ~" s
rs.MoveNext( );
5 i5 }' I: F7 {2 s- U9 q free(cylinderValue);
0 v# d; i4 P% h* L } 7 C- D- Y( B' O6 d
rs.Close( ); // 关闭记录集 , {+ [$ j8 u5 M5 d6 |6 u
} & X1 O# Q. E; `! b. R
Database.Close(); // 关门数据库连接
& H! W' A* x9 w" @ }
% {9 f G& n5 J+ u } 1 H" c/ s$ S# Q6 a/ c0 q
$ O0 h* v. q q( S9 ~3 V
# L4 N; J; s- b1 S7 bcaTCh( CDBException *pe ) // 出错处理
5 n, _8 V5 \* E. e { ' i5 D0 E( x F4 z2 Q, E
AfxMessageBox( _T("Exception!" )); 8 Y9 W/ D' x9 R2 ~+ D1 Q+ R _; C. F
AfxMessageBox( pe->m_strError ); 0 ` F$ `, F6 Q" Z! Q" h u8 J
pe -> Delete( ); / W( y% z5 `; Z, @. [0 o( h% `
} 7 A0 i; e/ W, X
}
. G9 ~; x) a4 C% E% B/ Y2 ?2 @7 [# I, K, F1 V3 B* o* z3 m
$ l# `3 S; w. [* Q: x @
# ~/ D# X3 U5 E2 N( q2 ]* U |
|