|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 Y1 N, b* N6 U- Z( V3 c) X' X8 C7 u头文件,加入 #include <afxdb.h>
3 \* Y2 L) m& w ]3 @# o# d9 c$ x6 q: `
void excelTest::do_it()
9 Q9 n9 l- p) p. ~9 z2 C' Y( V0 }{
+ m, W2 F3 j. k, p8 t& Q3 F, m j$ j. @
// TODO: add your code here7 f$ |! K. N) X( G4 U
- E+ \6 r, `. U$ Y$ I3 U$ n
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse ; z h% |* X1 C5 n8 g
CString SQLCommand = "select * from plmhome"; // SQL查询语句
& c$ c* z5 w$ y DWORD dwOptions = 0; // 设置连接的建立方式 2 L( v9 X% ^: c; @2 |6 p; c
CDBVariant temp; // 数据库数据通用类型
- J. }( Z2 [3 a8 d; ~ int result; // 储存返回值的变量 / I2 r& f; }; w' ]( t$ q7 j# D( l
char cyl_height[133]; ) P1 d. j% q* a; O. G2 L, d
char cyl_diam[133]; ; J' i: r$ W6 Y @+ m; ~: a9 o
double *cylinderValue = NULL;
' p D6 p0 G9 A+ K* Q7 m
! q2 l9 R* ]. F* @2 m1 E* i+ b try , q2 T! h# K# }* q. V3 b2 t* _ `
{
+ q( w( ~. O1 [' o* Y ( u; ]2 G6 g: A
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
6 Q9 V4 M; V% z0 E* k( _ if( result != 0 ) // 如果成功打开
( c0 g' J @$ F5 z3 Z {
: m$ N- Q. b6 d1 H) ~: d8 e m0 ^ CRecordset rs( &Database ); // 定义记录集
* X) r/ v( v) j% p* Y) [ if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
/ [& K' n& _$ Z# l { . u: X9 d! |. U0 Z9 Z& z/ Z0 s) i7 q
rs.MoveFirst( ); 7 t& ?' e# a- h2 ]1 a9 K
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
* ~1 R" |5 r1 C while( !rs.IsEOF( ) ) 5 R6 c, d( p9 `6 w( t/ w
{ $ K4 i4 Q L1 T. |1 H& w+ a: t
cylinderValue =(double *)malloc( nFields * sizeof(double) ); # y! Q5 V% o+ B+ q1 v
for( short index = 0; index < nFields; index++ ) ! ^" _; q; Y4 ?( j/ |
{
* ~5 Q) S1 z% w2 X# L% r, Z; q% w rs.GetFieldValue( index, temp );
- R: \7 F+ f+ ^9 {' I* b" e: L cylinderValue[index] = temp.m_dblVal;
- z; y/ h9 M6 w. G }
6 l+ y& h- U* _" s sprintf(cyl_height,"%f",cylinderValue[0] ); 5 `! Q) \1 i0 |. u: @- j# B
sprintf(cyl_diam,"%f",cylinderValue[1] ); # p* j9 b) F) l* ]) p2 [- _
' P: P& T/ z# p, W* m- O rs.MoveNext( );
) P7 }6 e* S- N! m1 F- [$ z! O free(cylinderValue);
! x8 K% U: K4 b: H } ; J* t% B2 z* f
rs.Close( ); // 关闭记录集
4 Q$ ]) Z' h# _% S- F2 {* u }
+ n* f7 r- M* g5 Y5 Z( j Database.Close(); // 关门数据库连接 % A0 b/ t+ _( D4 f) ^9 T! P7 U
}
. S! @! i( n* d% ]$ d. N- e }
+ @; y* @% v8 P- U
" F0 o5 A- ^/ R: M4 U+ i
+ e8 ~. T# c% ?# I/ z1 D, wcaTCh( CDBException *pe ) // 出错处理
4 y! s% \+ I0 Q( O+ Q. j' m' F {
% l6 p5 R, y; R; ^ AfxMessageBox( _T("Exception!" )); ) E) d ]( o5 x0 G! s1 P2 c- _
AfxMessageBox( pe->m_strError );
4 b1 x3 n( }, {; v/ \ pe -> Delete( ); @3 r1 T% g# J
}
5 D! V7 V# A' a/ |+ p}2 M* P% ]8 c Y2 d ~; E' D
! J8 Q/ v- S6 w, [) s2 k( R
; b+ J! O3 S- Z7 Z9 b
3 G+ E& T2 n, u2 [( U6 o" S( S; Z |
|