|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
0 N, H& ?: V6 \- t: H头文件,加入 #include <afxdb.h>
+ W7 [( |8 E8 U! G3 K- q- v
9 y" x, k) X8 f( q# Hvoid excelTest::do_it()$ O2 _/ _/ w* s1 [9 R# f% R6 L3 ?% A$ u
{" j' m0 z' f6 {/ k L
: B, Z* @9 a& c( b; z3 H // TODO: add your code here' A4 q; k; m" X5 D! Y' m
# t J7 y% b1 U- T
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse + [. d9 y* ] B& X
CString SQLCommand = "select * from plmhome"; // SQL查询语句 5 T* F0 s$ l, j0 C9 G
DWORD dwOptions = 0; // 设置连接的建立方式
+ M7 l& a+ e z- ^2 ?+ i0 o; R* i CDBVariant temp; // 数据库数据通用类型 / L! T) X8 H v. `0 `' H. D
int result; // 储存返回值的变量
6 ]# @; G6 o4 K4 T char cyl_height[133]; 6 s/ q+ k" F8 S. R
char cyl_diam[133]; , c# ?, h7 V! _: m4 G9 v2 I9 m
double *cylinderValue = NULL; - s, d5 O6 N# [, ?& L+ S* T
8 [6 {: H2 w1 v: w- k
try 3 t D" a, ^" ?1 Q2 X0 v
{ & C2 E+ S) \0 {4 M7 A ]
0 e T9 g) k( J, e1 u* V
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 : u7 M- y8 l3 X' e6 e" P) ]+ |- Z
if( result != 0 ) // 如果成功打开 ( X! i. b0 v# d* E& D6 |3 _
{ 2 p6 |2 W w4 p% Z- E, I b
CRecordset rs( &Database ); // 定义记录集
- X3 Z+ j4 N" j3 w9 l& R if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 4 X& L3 n* W- A! H3 N$ x% Z+ q
{
+ v) b0 j& j4 _' c0 c0 b3 S- S rs.MoveFirst( );
. a; o( d! L2 b1 w- d short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
: l7 ~) Z! W- s6 x4 h, x$ X while( !rs.IsEOF( ) ) * ^( I3 Z2 X) R9 X& P- O
{
# c: J( g7 C) o/ J& }+ m cylinderValue =(double *)malloc( nFields * sizeof(double) ); $ t( E3 x8 ]% m; e. v% Q) H: M
for( short index = 0; index < nFields; index++ )
8 e+ t k4 Q2 ?6 w9 X6 i7 g( W8 q { $ z4 E* G7 Y+ q$ J7 p9 U- e
rs.GetFieldValue( index, temp ); . P' E5 P1 j0 B2 e& o
cylinderValue[index] = temp.m_dblVal;
6 F3 @: B1 `, A( ^ }
8 Z8 h1 x( R2 s& Z3 ?+ d sprintf(cyl_height,"%f",cylinderValue[0] );
' w6 X) `$ z j/ { sprintf(cyl_diam,"%f",cylinderValue[1] ); & M# `8 u+ C1 [4 X2 ^9 l) S8 i* T
$ G/ n) F" Q" d* X4 | [
rs.MoveNext( ); % W! e6 C/ p, `6 a1 ?' a" s
free(cylinderValue);
0 Q8 p. W9 C6 L } " i) x3 w! X3 a |+ s
rs.Close( ); // 关闭记录集 8 ], i, G% @4 x$ e
} " L! n5 z4 c: c& o
Database.Close(); // 关门数据库连接 * f8 A% p" i; @4 X1 V7 I9 C
} ' H" Y( I( H) q8 C- z7 b5 T5 P6 h B. y
} 9 U8 r9 d+ |+ K1 L u
6 I3 u2 O1 p5 s6 F% j8 O+ o
" z& t) g" Y( v7 x; v* mcaTCh( CDBException *pe ) // 出错处理
$ j* K8 Q, A8 u {
- ?. d$ x4 s; [5 m AfxMessageBox( _T("Exception!" ));
- `3 V, s+ n) u. Q AfxMessageBox( pe->m_strError ); , f; T8 |; V' \1 M2 l- _) t
pe -> Delete( ); ) e6 m: U3 {, O) o* A! l
} $ U+ o! Y; A0 u2 J6 h1 m
}
# \2 `6 ^! s' R. \/ h5 @- w. ? z# G6 W
. P# M N3 |$ C2 s5 V t- Q
E* z( V K* A/ k" r) Y
|
|