|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 V3 r8 L' C% b9 o1 ^* C/ K
头文件,加入 #include <afxdb.h>: }; s% v6 D) N* k" S! j/ g
L' \4 m; g& w" t- Lvoid excelTest::do_it()0 h) J6 R* v' j$ B, z
{
4 u8 K9 x3 J& ] F* F J8 h$ k x; {" O0 T$ _9 A7 B
// TODO: add your code here- ?, Z ^& g4 ]
7 C3 Z$ j8 g5 Q" E: ^ CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
?; }, C# W8 V CString SQLCommand = "select * from plmhome"; // SQL查询语句
5 h& r& p& b, V1 n/ t4 [, Q DWORD dwOptions = 0; // 设置连接的建立方式 ( a$ p: {% H* L; {& y2 e$ L
CDBVariant temp; // 数据库数据通用类型
" \1 O5 Y3 N9 ~% | g int result; // 储存返回值的变量
3 L+ U; t, N2 J char cyl_height[133];
" h6 C; _& u8 p, {) V4 ]3 a' b4 B char cyl_diam[133];
8 J' o4 g. C6 B9 Z8 E8 ? double *cylinderValue = NULL; # U3 q3 w* r5 k, ^% ?
/ N+ T3 `+ J9 Q$ z8 o
try # x% T8 G% ^& ^5 E2 D
{ ' C0 j' `1 _! |9 A. k0 x+ `5 U
# c% v7 w' t7 K; E5 \8 d, d6 a# e
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
4 R2 U+ f+ [* i* {# S6 F if( result != 0 ) // 如果成功打开 5 @' h* e( E" T3 ^0 R
{ 8 O: z& \# f2 T# F
CRecordset rs( &Database ); // 定义记录集 , @9 a) a; v- u0 ^0 N
if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
' A/ ~" b9 a ]& t { 6 |" A: F5 v, [
rs.MoveFirst( );
! p, I7 M) K$ s short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
$ c" I" s5 W8 [2 O! K1 h while( !rs.IsEOF( ) )
" [1 d+ p: q; ~( V {
9 ]; a: [2 Q3 ?( k# _ cylinderValue =(double *)malloc( nFields * sizeof(double) ); & a: S3 D {+ I
for( short index = 0; index < nFields; index++ ) 7 y4 F& \9 v: r( i
{ 3 a+ I' b1 |8 k2 W7 F
rs.GetFieldValue( index, temp );
{5 Z' N+ A% A* J cylinderValue[index] = temp.m_dblVal;
: T- V W/ b2 z' ~( [ i, c+ W } ) j8 ~' i% i; A1 E+ \
sprintf(cyl_height,"%f",cylinderValue[0] );
/ m: {2 X* [$ i) R+ }1 t sprintf(cyl_diam,"%f",cylinderValue[1] );
+ ]: U7 N- P! m* e
2 c* [# Q* ^2 y' _1 R rs.MoveNext( );
% n* F' E5 E B2 i+ A free(cylinderValue); 0 Z' Y# p ~3 C! N
}
6 U2 i4 ?8 }" j rs.Close( ); // 关闭记录集
8 V' F! E9 d6 u+ D8 g; z }
6 r3 o; X5 F1 i0 n Database.Close(); // 关门数据库连接 9 w( H) w8 B0 z! Z/ \; M6 C. O
} ! r4 P. ^6 Z/ @2 `
}
$ n" M. }( q; F: k! }6 |% W7 x
1 S9 J' C/ J% Z: O$ e& y8 K# G; A: b' ^+ b
caTCh( CDBException *pe ) // 出错处理
) n* q0 V, h6 G q {
+ B/ f {9 n5 G3 [; o. b7 } AfxMessageBox( _T("Exception!" )); 2 o' }3 L( i6 y( z
AfxMessageBox( pe->m_strError );
' R2 V/ V' c& g8 P' K, R/ y1 i pe -> Delete( ); ! S: B# m' g i
}
3 L2 G. ?% r: ~" c7 T; {}
! r0 k3 w1 m" a8 e) I+ U; L8 y
8 N8 d9 y u. r/ w7 T$ U
& W" p0 s5 M G+ |9 ` n" w" g! y- Y+ I( r8 O5 ~
|
|