|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
! B" Q; Z6 `2 W$ J
头文件,加入 #include <afxdb.h>
9 x5 \5 O% j& G4 q, J6 _3 L3 |$ Q7 ~7 ~4 s
void excelTest::do_it()
' M/ u% X6 [2 o& a8 v8 f. }2 J% ^{: G3 l; D3 c; j+ F Z- F
* C% y A& ^" ] // TODO: add your code here
. X! j$ z8 `/ {8 O8 {2 i0 K) H) A9 w+ V
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse * ^: q2 H1 t* M. ^6 f& }6 V
CString SQLCommand = "select * from plmhome"; // SQL查询语句 $ e+ w0 o# v$ |2 i( F* K4 D
DWORD dwOptions = 0; // 设置连接的建立方式
( T, ?2 R. A% A CDBVariant temp; // 数据库数据通用类型
+ Z$ M4 Y- R! h& f% S: u+ }6 `5 X/ x% \ int result; // 储存返回值的变量 . n" i! ^0 ], J! d" D
char cyl_height[133];
' E8 q1 ~. m9 l/ W2 a: N char cyl_diam[133];
- q: \# v& Z6 A- |# b8 ? double *cylinderValue = NULL;
* x' @( H8 y5 P; {5 Y) i: a3 H+ D1 y) K; n
try # P1 p% X) }" W. T
{ 0 {; Q: x4 S$ z. q" T2 t
5 q: s4 ~4 q. t- R
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 " Y* k, u4 n: @7 l
if( result != 0 ) // 如果成功打开
7 B# `0 a5 \) l1 { { 0 A' `! N1 k7 J a6 {
CRecordset rs( &Database ); // 定义记录集
+ Z! p1 O1 Z- J' W [! K if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) ! R0 Y/ M7 k! } T+ I0 A
{ 3 a+ C5 O5 f' p: Z$ b! G
rs.MoveFirst( ); 3 M+ e- e& X3 U; _' h- E/ l5 I
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 n! Y: B, g4 ?- b
while( !rs.IsEOF( ) )
0 e5 @7 _7 c' S {
' s3 Y# [( E u5 B cylinderValue =(double *)malloc( nFields * sizeof(double) ); # K2 h' P4 t! {) K4 H( W O/ [8 O
for( short index = 0; index < nFields; index++ )
6 A0 a+ A* p9 E1 g { 1 q' p5 O+ E" Y4 O8 \3 ?
rs.GetFieldValue( index, temp );
) W$ S O, X7 \8 T cylinderValue[index] = temp.m_dblVal;
7 n l5 r- s3 S" P: o }
h; r! k6 |8 [% d% G1 J0 A' W sprintf(cyl_height,"%f",cylinderValue[0] ); $ M7 ?9 v" y- Z5 r2 c
sprintf(cyl_diam,"%f",cylinderValue[1] );
* p5 {/ k3 M$ P# e8 s, T3 B- B. c# |5 C2 g
rs.MoveNext( );
( c1 q$ g; D- I8 o# Z$ r free(cylinderValue);
9 m1 d) g( q; r( F4 E2 Q7 i }
7 @, A: }2 P+ W' r+ {1 L' ~ rs.Close( ); // 关闭记录集
, @1 f6 \& u1 y& E+ s9 F+ C } + }% V& W. X& t2 q8 [$ h( |/ d/ ^
Database.Close(); // 关门数据库连接
/ |! J9 R* ]. T7 ]7 D. p } % }3 ]% K9 |2 e, j
} ( B9 _! `, M+ u
7 {, z `) Q2 j: B% C
' g: H( x( R! a0 F C7 LcaTCh( CDBException *pe ) // 出错处理 $ t5 ^9 E* V* M6 R: {& ~
{ 9 E& X5 k+ `5 x" ]1 P9 l
AfxMessageBox( _T("Exception!" ));
5 S! v5 N$ Y1 y/ p$ U( ? AfxMessageBox( pe->m_strError ); b3 L( v4 l# I g1 N! w ^
pe -> Delete( );
- b+ p* G. q; ?3 N7 z$ j }
# ]" X( t% h; l/ u* \}" ]' Q( Q) ]# W2 j5 N' p$ ~/ X
/ y# A5 U* W2 E
" g7 V1 P6 _; a, e9 R+ a* p1 i3 T
$ H0 K- Z% x3 I) V% K |
|