|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. p0 l% m5 ?6 k* y( j# H头文件,加入 #include <afxdb.h>
2 [/ e9 @ F, e
7 {# T. I1 X$ f0 }1 _* y2 b, o, \void excelTest::do_it()
% W, b/ x9 w/ _5 i, k4 f{
8 N( I% m( `8 @& B$ o' G
3 S% [5 |/ g/ H3 A. l // TODO: add your code here
! w5 z/ b9 `4 ~* y$ a, f# A
) n' x- E4 P% m7 |3 i CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
9 X- V1 R: N) S! d: {) A) w CString SQLCommand = "select * from plmhome"; // SQL查询语句
$ J8 t) ^: U( p4 H( G/ ^! j! t7 n DWORD dwOptions = 0; // 设置连接的建立方式
" W7 }8 A* D1 a4 z: J1 l CDBVariant temp; // 数据库数据通用类型
7 f. t0 V4 M7 i( p& g int result; // 储存返回值的变量
. o' O \- d+ ^% c char cyl_height[133]; / E o$ H3 i' Y2 @" A2 z4 c: ]. \
char cyl_diam[133];
6 e0 T4 E9 p S) d7 G+ a double *cylinderValue = NULL; " q# u0 r; }" d: D- x) j6 [( D
# h" b! o1 ?' Y/ W, [8 e" @
try ; B. @. [1 O9 R# Q! ]2 s
{ 8 U: g+ o1 C7 {
( C+ X9 L6 p0 h
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 ' g5 d; Z; v5 j3 p
if( result != 0 ) // 如果成功打开
0 a. n' ?8 @4 L$ r {
& T2 u/ \2 W" R; j3 v" z CRecordset rs( &Database ); // 定义记录集
3 m9 E2 V: ^: V1 L* u6 Q) i& |4 _ if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
' }- u' w( H; U {
7 |. B# V9 L' U2 h& w0 a rs.MoveFirst( );
+ A. }* X- ~, Y1 c. p! D/ E short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
: q! t- K; y' r- {/ z! Y while( !rs.IsEOF( ) ) , ]# w6 B7 c r2 ?. A1 x L
{
7 ^9 l, i1 i0 T( Q' Y cylinderValue =(double *)malloc( nFields * sizeof(double) ); - I- u: {4 }+ \) o
for( short index = 0; index < nFields; index++ )
- @8 V. L3 w* e* i* ^+ z1 j# }+ w% _ { ; \# K( C! t% Y: Q
rs.GetFieldValue( index, temp ); / ` I7 l% V' a5 ~
cylinderValue[index] = temp.m_dblVal; ( C- s# Y, l# l- l
} ' p1 U5 a- i/ G) V
sprintf(cyl_height,"%f",cylinderValue[0] ); $ L6 ?: e5 W) @% Q2 _3 Y" q
sprintf(cyl_diam,"%f",cylinderValue[1] ); 4 |* X9 e) g k( y* W& ^$ n
r/ j$ ^; n/ k) a% V, J8 X
rs.MoveNext( );
9 X+ L6 G* U; _+ S _9 |0 A free(cylinderValue); 1 c5 e% X* ?8 t& V% z
}
% e- ^! t q2 l7 V8 [ rs.Close( ); // 关闭记录集 ; B x; V; c; K G: u3 a# n- Y h& D: ?+ A
}
' z, ~" c- ^, b/ m |3 b9 B' J Database.Close(); // 关门数据库连接
: ~. y5 a. c T \" q" H } 9 l$ \4 V9 u- l
} + e. @6 l5 F# w1 W9 D
/ e. _- G6 H( D. C
( l! J- E- [% e6 gcaTCh( CDBException *pe ) // 出错处理
8 N2 R0 n, o v i/ k5 t/ h { , D9 O& o" f/ b4 j& v
AfxMessageBox( _T("Exception!" ));
: E, b- ]/ q% l: d/ P/ ^) P% n& ] AfxMessageBox( pe->m_strError );
2 Q8 ?4 z: \8 }* ]; Y pe -> Delete( ); , K [/ p/ Y+ e% L3 y. v
}
, Y( ?/ t- v6 l6 w6 [; _& g: V}5 V) p3 h- j, S1 B5 T' K5 @' ~: `
; K6 J; L$ }( N: M' h5 B6 K- U/ P# M
9 A. a. Q6 J, l
|
|