|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 o" B2 C' l( w4 s) Y7 n+ i头文件,加入 #include <afxdb.h>
/ S% ?1 c8 r& S! U& T& t. J9 _4 I+ u
void excelTest::do_it()
1 Q8 C4 t0 @/ j4 A3 ]) g{
2 Q& l. v8 m8 F6 ^8 M' X% x: W1 P7 \* ~. S2 y
// TODO: add your code here4 f5 L# N" ]0 E
! A' X( e& ?/ Q& m* b7 ~% k CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
/ ?* V. c% _, ^' H) m' H- T8 ~ CString SQLCommand = "select * from plmhome"; // SQL查询语句
7 Z( _* s' {: V* }) f DWORD dwOptions = 0; // 设置连接的建立方式
0 n) T h$ K1 x% v3 u4 a9 e CDBVariant temp; // 数据库数据通用类型
5 A% S3 I+ B% U int result; // 储存返回值的变量 a$ L6 A1 Z1 K, g! ^, ~
char cyl_height[133];
0 _6 c4 Q( @) q char cyl_diam[133]; 6 w2 w5 Z/ P6 P9 ?1 ~8 x
double *cylinderValue = NULL; : J' K# E3 D9 @/ {8 `* G" |
4 P2 X5 X+ m( H/ a$ Y" T. ^' _
try $ Y4 `( ~& e! L) G% f
{
$ g8 D. ]0 d% p. S7 I$ I- I
) w7 @$ o# r% d6 R result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 . }8 A7 h. w/ Q' o- ?) X) `/ W
if( result != 0 ) // 如果成功打开
& R5 T. O; | d/ X: d7 d5 ~- [8 Y j {
! {) x; W& v$ ^* a: i; \" Z CRecordset rs( &Database ); // 定义记录集 / A; h+ t/ r& x9 D: N
if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
2 e" P+ Y) X8 Z( W+ E) h { ( P, R7 O% m" p3 l$ \: |' s8 i
rs.MoveFirst( );
h# k# @3 U2 K1 H# e& a. @! s! |- Y short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 " v/ X! l* b+ B: {3 x
while( !rs.IsEOF( ) )
+ L! H* I& `; h% l$ |. L0 i { 6 Q: v" o, ~$ b2 m! d
cylinderValue =(double *)malloc( nFields * sizeof(double) );
6 P* ~. [. J' V, C+ Z for( short index = 0; index < nFields; index++ )
, Q7 W' R6 [+ A% I5 K' G5 |) d { 3 j+ |3 S6 C/ R5 `' V; b
rs.GetFieldValue( index, temp );
) o, \4 M: Y' X* U! a7 f6 f% S/ U cylinderValue[index] = temp.m_dblVal; 7 |0 z: x$ k/ A+ n" @. D7 M& G
} 8 a x9 C4 ^% ~& o
sprintf(cyl_height,"%f",cylinderValue[0] );
4 L* O/ P7 ^% k% t0 j1 X: ~( h sprintf(cyl_diam,"%f",cylinderValue[1] ); 8 i0 ^7 e+ I5 |3 L
; B8 X! Q- ?1 _* @+ ]
rs.MoveNext( ); . d9 a3 f) |% \; |
free(cylinderValue); 4 {3 `, u+ d2 z$ [4 ]$ B9 s0 h
}
2 [: Y1 x* z6 c9 c rs.Close( ); // 关闭记录集
3 J9 v( } ^! [5 {& j& A% S }
7 `$ c# ]; t; d A* f Database.Close(); // 关门数据库连接 7 u0 _2 W3 ?- l( V
}
' O6 i% O5 }/ f& ~3 }* U+ }; ] }
" M4 \! i5 d9 C( p3 R% x5 O! M! N a0 m& P( r. a# y
7 g* W) F9 u4 A6 j8 ~9 z8 k n& t4 ]
caTCh( CDBException *pe ) // 出错处理
8 [0 X4 D1 ?) G% x! T {
' a7 ~6 E j" Y7 w; V7 h AfxMessageBox( _T("Exception!" ));
! d: n: |6 T/ j1 x9 F AfxMessageBox( pe->m_strError ); ( e' Q# w$ x( [& t$ _ A
pe -> Delete( ); ; j$ M7 V' X/ L# F1 p3 K6 {( \0 i6 |
}
) }) w: R |. H+ h}& @4 s& c5 | Z2 u4 \1 X- Q1 L0 r
. h& d) x+ F. @ z1 F; o* t: S9 G* S0 ~
, b2 e# T% J/ N i: w% U0 s( v# | |
|