|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ A* M+ G. Q3 X8 V( J; O6 C
头文件,加入 #include <afxdb.h>
( p% j- M6 \3 M( i' G: G; a0 m0 J( C. p" \
void excelTest::do_it()' d/ e( ^. M/ e
{
/ V. W: q) [5 [$ ]/ e. \3 Y% I5 O: _. m
// TODO: add your code here
3 [4 O* b- e/ R# o: R" x% L# B1 B
7 P" {2 _+ ~3 h) E% d) S% p: s CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
; g4 g( q+ y* P! T7 z CString SQLCommand = "select * from plmhome"; // SQL查询语句
) E/ H @* g7 V. X: L5 Q. F: I3 s DWORD dwOptions = 0; // 设置连接的建立方式 t% T. g6 o! w$ }
CDBVariant temp; // 数据库数据通用类型
9 E$ M. s9 A: V& E8 W$ q/ H int result; // 储存返回值的变量 , m' _' M u) x6 K. ^
char cyl_height[133];
. X8 s6 l5 O0 _6 {: r* b7 A. a char cyl_diam[133]; ) S5 D6 ]7 R0 J4 f" U
double *cylinderValue = NULL;
. e6 t& O6 A1 U, z6 T" U
8 S2 \6 p6 k( n2 \+ _ q try ) j* i7 K: m) p
{ / s7 M8 x; D2 G1 c! }$ E( }% }) E" D
# p3 R; u0 _; L0 v* k/ C
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
\% a$ F1 u7 F+ B# {& m0 s q if( result != 0 ) // 如果成功打开 ; j" ~4 i6 t- k5 p2 d
{ + i8 _# C9 v I: W. t1 j
CRecordset rs( &Database ); // 定义记录集
- j ~9 j3 Y0 @0 F( } if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
4 ^4 Z3 u/ L6 M+ Q. V8 V" p/ T {
( |; l' R5 e/ ?7 [- z: }" ] rs.MoveFirst( ); - [$ j( l3 ~. w, e
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 : A* O$ P- q& H% \3 u. | F* ~+ t
while( !rs.IsEOF( ) )
j6 k1 E2 t6 h: k/ A- m { 0 q: m2 _0 H3 f& [* Y6 L
cylinderValue =(double *)malloc( nFields * sizeof(double) ); & |, L* Z/ Q. N! x8 v0 {% X" W3 x# [+ r
for( short index = 0; index < nFields; index++ )
a2 R* S; k( E \1 z2 K4 F {
% Q# s5 n: Z I& f rs.GetFieldValue( index, temp );
* n9 n8 @7 ?4 d. b8 k' h, H; k cylinderValue[index] = temp.m_dblVal; + q; D' {+ N# Z4 N6 `
} " n; W" T0 M* s: D, G6 m7 K6 ?
sprintf(cyl_height,"%f",cylinderValue[0] ); 6 P9 W3 N; l0 R1 m" t
sprintf(cyl_diam,"%f",cylinderValue[1] ); 4 j' o. L: v) K8 a
& [* S0 B( c8 v' Q) S rs.MoveNext( );
' Q- Z# w2 R/ g$ e9 I, \ free(cylinderValue);
# T5 t1 X& o3 [8 p }
5 x1 B' I3 x. _# J1 Z: X: o rs.Close( ); // 关闭记录集 % g& K" O9 {! M. N
} , j6 p4 r$ x/ n( e; f0 g
Database.Close(); // 关门数据库连接
% o D; a0 Y9 [/ V# r& e6 k/ G }
* V9 C$ F- [# z8 q6 G& s } % N6 T5 r% V! K) u
2 E* m m, ] z3 J2 r' t7 n
' G6 n! f2 P- z1 B4 k8 JcaTCh( CDBException *pe ) // 出错处理 3 g6 F* M1 |. q* }" @7 v+ ?
{
9 B1 V! J7 v ?% \- D AfxMessageBox( _T("Exception!" )); : ]; Y; G# K0 y! Q; s
AfxMessageBox( pe->m_strError ); ; L& |8 @* C7 s; o
pe -> Delete( );
. O3 m" a+ {: ^8 C/ `$ d& ~ } + y% ?6 n* ?! `$ y* J+ [4 Z
}
* S- f( ^; N9 O. L' G- A
2 Q- p2 s! o D' e
- r {. {! H$ f! c3 u3 ?
6 E0 s# u1 U: \- U+ L |
|