|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& K' m8 z' \! X5 O x* l头文件,加入 #include <afxdb.h>
1 U( ?8 j% \1 _! u8 m/ c
* @: r9 V" G) A- l2 J5 {void excelTest::do_it()
$ `$ |7 e4 u) }* X' q7 T{6 Z+ A3 K! D0 [
1 l/ C( m6 z- X* ~% @3 q; k // TODO: add your code here
; c% z8 `; v8 A+ y/ F' O5 ^* T# l1 V0 w8 E; Z7 G5 R1 ?
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse % _2 T. ^1 ]6 S7 k
CString SQLCommand = "select * from plmhome"; // SQL查询语句 4 h+ W+ u/ Y' K# x: l- {3 a
DWORD dwOptions = 0; // 设置连接的建立方式 ) D; P0 H6 b8 A4 j6 W6 k
CDBVariant temp; // 数据库数据通用类型
& N, s5 ~; W( I6 M' \8 b int result; // 储存返回值的变量 2 h0 N6 G0 Y( x
char cyl_height[133]; & k. t- C) y" G; _0 v$ E
char cyl_diam[133]; ) l& {/ t8 m0 y$ [
double *cylinderValue = NULL;
4 @/ W( M! Y9 |' m8 F% g7 V K# g, r9 e" S! Y/ f- p& N+ g4 h4 S
try 0 I$ F' e/ m9 `" l" s. U2 P; C$ Y$ x
{
3 J: e$ I% ^! p2 e% E! f $ m% q* B9 D' U2 J* E4 R2 C
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 5 y4 I( H0 p% `' _% N+ w
if( result != 0 ) // 如果成功打开
; E b& t" c# P: u1 x {
' u1 y' @, l8 A8 r* n: k# E CRecordset rs( &Database ); // 定义记录集 7 ~" B( x' v$ f
if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) . S+ _: [: S6 B( ?5 J% I5 I; w; v
{ * w2 U; d9 s7 e# ]4 Z
rs.MoveFirst( ); 4 S. \/ @/ j6 ^6 F" I
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
T: }6 W" l8 A- b% y1 a while( !rs.IsEOF( ) ) % c1 Z; W# X0 K
{
+ i: ~- a# U5 t5 G cylinderValue =(double *)malloc( nFields * sizeof(double) ); B5 F* M2 S7 T+ ?. ]/ R
for( short index = 0; index < nFields; index++ )
' n7 M+ c0 s7 i" S- i; d/ { {
) X. Z# t, p. Q9 |+ o$ n rs.GetFieldValue( index, temp ); # i, a- {( D: I* w( H+ B7 v0 Y
cylinderValue[index] = temp.m_dblVal;
; y7 f* h) r& P1 s" {5 f. w: i }
1 t; F2 d5 D) n5 m! N' a% g$ X: c. c sprintf(cyl_height,"%f",cylinderValue[0] );
# t/ P* A! \+ y sprintf(cyl_diam,"%f",cylinderValue[1] ); ' b" H8 l! G5 m7 x* c* p; i
' E# a0 F) K r2 Y1 X% G _7 ? rs.MoveNext( );
+ Y2 ]3 {' P+ j! ^* x! U free(cylinderValue);
9 @) O& J8 G+ O3 j9 Z& m }
* Q5 ~) R" a' q0 z% A6 n rs.Close( ); // 关闭记录集 - X/ n/ e6 Z/ R
} 7 N2 m2 ^1 }8 j+ _
Database.Close(); // 关门数据库连接
; i. A3 R4 d- G }
5 V4 ]* N. `6 A( N' e } 2 q- i2 v+ {+ V7 i& R$ f3 L6 T
, J U; L4 w, b+ o
" G9 }. e: D' h% f' T
caTCh( CDBException *pe ) // 出错处理 6 H7 w& o/ p+ M+ ?# y, \" R
{
* c$ }( O: d6 Q# m, c" O AfxMessageBox( _T("Exception!" ));
^. N9 r0 R% ~6 K AfxMessageBox( pe->m_strError ); ; Q9 b8 Q& E5 f) q( \9 z& r9 ^$ Q
pe -> Delete( );
5 w T& @( E. O1 K4 ^3 @0 C$ D }
u1 ^1 ^4 b- M' N1 b5 {}
9 \) l$ R7 M1 d3 U$ l5 Z( B3 R" {9 R. {5 H+ H w: L
$ E* Z3 W. {! p" {1 x
. ?$ U; S: X' t7 u |
|