|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
E5 ~$ j, \& }' i3 y* Z
头文件,加入 #include <afxdb.h>9 }$ ~/ x, a) m4 u
) O& t0 ~+ Z7 V% _+ a4 q: |void excelTest::do_it()
- n( ^% ` n$ D6 d" l9 z{+ K! Y+ D* F$ j8 c& \% x
7 y3 u, t+ i" W! C$ i/ r
// TODO: add your code here
, B9 v4 `4 x$ R+ ~7 a% h6 c n
& }4 b( W% Q: j) q# f CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
% Y/ K+ n+ |7 I5 L CString SQLCommand = "select * from plmhome"; // SQL查询语句
3 f, K1 u% x) X P0 p- H4 O DWORD dwOptions = 0; // 设置连接的建立方式 * l+ p9 \ w2 Q$ c* H" K8 l
CDBVariant temp; // 数据库数据通用类型 3 R4 ~" g0 |& w3 B/ m9 e y
int result; // 储存返回值的变量 # I# [" ]1 X& S9 q, X& S* e% ?
char cyl_height[133];
& c) g; }$ B+ n( d Y" n# \' j char cyl_diam[133];
6 Z" R S; h& z/ Q2 e. b double *cylinderValue = NULL;
5 F6 @- w7 _ v! L- t$ t4 u q8 ?$ @. Q
try 5 R( O; T2 D' {8 L+ f
{
, F) i. t3 [" \7 ~: Y3 V ) {2 k* d5 Y$ j& t$ u
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 2 L5 o' W: A3 g6 w; ^: X3 m$ ~
if( result != 0 ) // 如果成功打开
. v6 p; A; H r3 w5 P T W4 W { $ u* f% J# k' g& _# P# d+ m* `
CRecordset rs( &Database ); // 定义记录集
2 T) }2 X% [6 P, h3 v! D, z! ]5 ], u if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) & q8 O1 X0 M$ q" P
{
% m; U! v- C% d& M! L2 e0 S, ~ rs.MoveFirst( ); ; a- r9 D5 B1 b0 k) V% x) N
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
* Q+ a2 a9 t [! {9 X+ r while( !rs.IsEOF( ) ) 6 ?: h1 C% V3 l m( i; G. @! D2 A
{
# S8 _& |9 ?* u: o* D& _7 r" M cylinderValue =(double *)malloc( nFields * sizeof(double) ); 6 {) `2 L$ M( B, Y
for( short index = 0; index < nFields; index++ ) . G1 i, ` s0 v8 r% |' D& q
{
+ y& s( y7 D% i5 V rs.GetFieldValue( index, temp );
9 K+ p/ S" m0 K9 O) K {. J cylinderValue[index] = temp.m_dblVal; 0 E6 z+ y3 \# s8 M- L1 y9 c
} 3 ]: k! K/ T- }) m
sprintf(cyl_height,"%f",cylinderValue[0] );
# w( I$ S! K7 d7 ? sprintf(cyl_diam,"%f",cylinderValue[1] );
+ A: P* c& n/ K1 ` b5 v7 m6 c' X9 t" V# b2 n7 E# N- J
rs.MoveNext( );
& o) J3 n) T4 P3 Y) H% D: ^ free(cylinderValue); 0 A: V9 o1 r* V/ [+ v: I, q. q- R$ H
}
. J: G& E) g7 S rs.Close( ); // 关闭记录集 0 R3 K) d: q2 m! P; d; Y
} $ d# D- Y3 W# J( K1 w5 ?( i
Database.Close(); // 关门数据库连接 ; `: @/ {" A' \6 u' {/ j1 s
} 0 O t, @) w2 h# y. R1 G6 Q
} 2 [ D8 q; {% }1 k Y- u
/ D& c0 ~. k5 U: _, Z: ]# C. G
! k1 E) M5 P! U7 f4 a$ Z8 N# dcaTCh( CDBException *pe ) // 出错处理 $ X' `8 L4 I3 s) N! @3 ~
{ ' J$ J4 V' \' F) j& L+ ?
AfxMessageBox( _T("Exception!" )); $ e+ H2 L* e7 g v
AfxMessageBox( pe->m_strError ); 7 t& u0 Z$ a: y$ N* Z9 ^, S
pe -> Delete( ); : u0 _, c* a7 M- i
} 8 I8 t3 J7 J/ C# Q/ X
}6 I3 T l: H5 ] v) a
9 D! }, y# f T1 A/ e3 i) ~5 Z
) E5 T/ z- X4 O0 y) e' c8 U0 Z% x
$ O# l$ m6 z! j1 D: ~! \ |
|