|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
5 r* B1 v9 K! T( }9 b5 h
头文件,加入 #include <afxdb.h>- E- e8 d6 K6 R2 |* f
0 F+ Q! l w8 m" @void excelTest::do_it()& H% A* n9 g: r5 h9 R( J
{7 x! U% N1 |# ~5 y& j6 T
, h: A& G3 R; w, r* z
// TODO: add your code here
( l6 m. m |' C1 Z% _4 }
# |# }8 B q# ^; l' ^8 V8 _2 k CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse 3 S2 Z& `% O9 j5 |
CString SQLCommand = "select * from plmhome"; // SQL查询语句 " q0 Y8 q+ J/ m/ A8 C) Y5 J( S
DWORD dwOptions = 0; // 设置连接的建立方式 ( P. M% V7 ^" \5 J9 S$ \
CDBVariant temp; // 数据库数据通用类型
7 _8 Y0 _+ a3 D6 ?8 h* o7 ? int result; // 储存返回值的变量 ( F$ h: |, @6 D9 `8 c: l
char cyl_height[133];
' \9 @: W4 e' \% v8 p/ ^ char cyl_diam[133];
! B5 Z/ l$ F( t double *cylinderValue = NULL;
C1 G+ t2 f8 a- x* A
7 S# p! v ~7 h6 N9 P/ i2 Y5 m try ) K$ W- A/ M3 G& w
{
" D7 ~1 z8 d8 n; P& n
8 \% i2 l# d% N w# b result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 ! c ]. z- \5 J% N" [
if( result != 0 ) // 如果成功打开 3 B) b$ o+ x! N/ R- z+ \4 {# g
{
" ]2 c# b/ T. [' v+ G* {6 h8 C1 \ CRecordset rs( &Database ); // 定义记录集
& ^3 i8 c, b& i* b& H- m$ h if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) # J M3 ~, } A3 f# ^$ u' L
{
3 { P3 ]8 L. D2 @+ _5 M) X rs.MoveFirst( ); & w3 u0 s9 b; @0 K! _8 J3 ]( d
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
1 u% E* o/ B& `6 Z- W5 t while( !rs.IsEOF( ) ) : h% a/ L& i& y) c# g# ?
{ , d' }! L+ a+ Z- V2 a* ~" H
cylinderValue =(double *)malloc( nFields * sizeof(double) ); ; n" A% B' `- n- `9 A; u2 L; M% Q
for( short index = 0; index < nFields; index++ ) 9 T2 n ^4 A( D/ a9 ]
{ * i" }1 h' e9 c
rs.GetFieldValue( index, temp );
% [1 }7 O0 K' a7 f) B: w. ^1 v cylinderValue[index] = temp.m_dblVal;
8 O j2 Z2 ]$ X3 K( S! t; \; B) s } 8 {# n) j+ W+ z/ ~: f0 q* ?$ X
sprintf(cyl_height,"%f",cylinderValue[0] );
) q. u: {" j. f% k sprintf(cyl_diam,"%f",cylinderValue[1] );
$ ~2 a) p" Y: U# X1 g6 }* f
4 ~0 F. `/ l* F7 N; ~/ t! K4 w rs.MoveNext( );
# p* C# P; p0 E- i, K! o, R free(cylinderValue);
/ x& ?. E: v0 R }
V/ J. i5 t. }: c4 v6 B% d rs.Close( ); // 关闭记录集 4 I5 C! J4 d" r9 x; G8 i9 ^7 b- F) Y
} " A1 A/ w- \4 u/ ]' K
Database.Close(); // 关门数据库连接 * I9 k. E8 y1 `2 S2 e
}
) o* H( S$ r5 Q% n. X, ]# i3 p } 3 v; n' r; N4 P* K* b, g
) b2 w5 N5 S1 q/ B( ?! G# [
! u; }7 y$ v/ p4 ncaTCh( CDBException *pe ) // 出错处理
) k( b: `; H& g {
, c) s7 K& ^$ ?- u4 z! o+ F1 s AfxMessageBox( _T("Exception!" ));
3 [+ j* c$ e q7 a Y! ?1 { AfxMessageBox( pe->m_strError );
0 C7 d7 x1 `) Z) } pe -> Delete( );
3 }' X! a; ~. Q4 X: G } & U' i; {4 ^. _) @" S. Z! ~1 u
}
2 v9 o" _) u% t, s' v5 u, c( `5 z7 G6 @1 ?" M! d+ t
6 W$ V, t8 ?0 M9 t$ a4 G1 q" `$ G5 E
& a1 H" C1 b6 n* d
|
|