|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
8 T0 ?- i8 K' m头文件,加入 #include <afxdb.h>. I( h) B- ]$ O8 f/ E2 Q
' `# K( l' `0 y. W7 Qvoid excelTest::do_it()" q0 ^6 U: q+ V$ w. A+ b
{; l6 B8 ?1 Q6 @& F2 r
. x3 R0 ]0 B" _ R7 [! O
// TODO: add your code here3 `0 i6 w+ J- i7 ~* _& b5 _6 o
# j% U% t3 a( S, x1 L! v
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse " k7 N1 W# J, M, s* K
CString SQLCommand = "select * from plmhome"; // SQL查询语句 * ~: w3 N- L J1 c
DWORD dwOptions = 0; // 设置连接的建立方式
. F, }) U' e% U9 Q2 L8 T CDBVariant temp; // 数据库数据通用类型
/ W+ h% B- N ^) u int result; // 储存返回值的变量
3 Y+ j1 w2 |' O/ N# A0 S char cyl_height[133]; 6 T( n( {3 c4 C5 a0 O2 U7 J
char cyl_diam[133]; 1 P& j/ W3 @$ y& R; y) h
double *cylinderValue = NULL; ' k6 K5 h4 a0 Y' z' Y8 e& ?
& g9 }% L: ]2 w, o# P
try 2 }. L& q. E" I
{ 8 t! t9 D9 T. p" r; M1 M7 i6 T8 g, R
1 n& X# h% x$ k2 O: w result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
R* C% p5 W6 } if( result != 0 ) // 如果成功打开
1 _5 d' |0 _2 V! ~* ]6 O, @1 V1 H { , s0 f/ b/ b4 `6 {) S% Z; O( T
CRecordset rs( &Database ); // 定义记录集 # n% n7 J5 D$ C
if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
& r1 G% }1 l# x/ o; i {
( R" z3 h$ i6 g. \' _+ B" h rs.MoveFirst( );
& t1 Z+ n A+ s m6 n2 ] short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
6 N3 p7 F2 a2 \ N0 U" D while( !rs.IsEOF( ) )
" Q# ?5 T. Z5 V" x: H* v; s, q7 ~ {
7 b& l0 E3 ?/ K1 x: T cylinderValue =(double *)malloc( nFields * sizeof(double) );
+ B+ L1 P S7 U/ b6 T for( short index = 0; index < nFields; index++ ) 0 K) a7 k7 K" B! K$ ^
{
3 g. U3 K8 ]' d- Q3 \. M rs.GetFieldValue( index, temp ); % l" `! B8 C9 {% R% L
cylinderValue[index] = temp.m_dblVal;
4 U; u4 T) G/ I% W } / B% }% k& ?& N; A& @: _0 I5 r
sprintf(cyl_height,"%f",cylinderValue[0] ); 1 z) [7 d+ s' |' [9 U% }5 ]
sprintf(cyl_diam,"%f",cylinderValue[1] );
) F$ i7 p9 v" U3 U+ b6 H. ?! X6 w/ s5 {: Q' P* m" v2 J" y& H3 E( y
rs.MoveNext( );
; s: S4 A% j5 Q; R4 n free(cylinderValue); , \0 O9 A5 I9 ]) L
}
0 d0 `' J% A2 F# K$ t rs.Close( ); // 关闭记录集 ! ?) N, S6 ^* X% I
}
* n5 o+ V7 P h Database.Close(); // 关门数据库连接
$ Q J: ]; H4 b; F } / U6 p" T7 U, E! d' E2 V; d0 e
} - w8 J, F- X. Q) N/ ^- g
8 b9 S5 [/ T8 \# \4 o8 c" n* T, i) U: o" m! ]5 F2 B) R. \
caTCh( CDBException *pe ) // 出错处理 ' @6 z: g, ]" F' i
{
1 I( a8 t# M" m# J4 ?+ B' V AfxMessageBox( _T("Exception!" ));
- a3 Q8 R4 f1 S. L }1 m$ `2 M) b1 z AfxMessageBox( pe->m_strError );
/ A4 z& y8 T% x7 t& | pe -> Delete( ); ' N( y* w. r }, |: C8 l! `
} , M" F3 E; X, S( u
}# `; c: f; B9 D1 u# z/ R9 o
) T' X8 X$ t4 W! p6 O
: P3 A+ c- d& F* N! H7 v! W0 h! D0 D P7 m
|
|