|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 F- v T+ u/ R6 ]$ |- i2 r K
头文件,加入 #include <afxdb.h>
" C; c% S, r# A! l' ]/ U, A! a! y/ R+ D
void excelTest::do_it()
. S3 D/ v) h; @: p# d7 P# r0 F) U{
& g% z! Z, ]) n4 j' M" `: V
2 Y$ n9 G& E; | // TODO: add your code here+ g8 p! @) e5 @9 ~. ?. {
% ^7 @# E( G+ p/ ?" j CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
" ^7 q s/ \7 I# P' ~ CString SQLCommand = "select * from plmhome"; // SQL查询语句
( G/ p# ?$ T( ?0 x4 x DWORD dwOptions = 0; // 设置连接的建立方式
4 j& }+ @2 C" @( X& ` CDBVariant temp; // 数据库数据通用类型 n5 k+ a$ |: b4 \ e
int result; // 储存返回值的变量
' o/ ]" W$ v0 @ m, W3 _2 l char cyl_height[133];
: P: E0 R. u- z) p9 b1 H char cyl_diam[133];
; x4 w; |4 F: _1 A" Y2 F9 J! | double *cylinderValue = NULL; $ X- @/ `7 x$ q [9 Y$ w
2 {3 X5 b' r8 O# i: n
try
2 E+ G- t( @ s3 D {
( O& w( _1 F/ u/ v4 t( \, `
. P" ^/ f* w' Z: L2 _ } result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 & q- I' a5 b* p
if( result != 0 ) // 如果成功打开 6 f9 a- L$ D- ]/ N7 l
{
: W9 W3 v( o! J- ] CRecordset rs( &Database ); // 定义记录集
; d$ t% O5 {0 B+ X% u7 { if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 8 D& Y, ^* b7 c7 p
{
! c% B* T' }2 ?7 x+ f rs.MoveFirst( );
/ D) L+ e9 \7 _! { short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
. q' W+ x* g1 B0 g- d! i, K while( !rs.IsEOF( ) )
* _/ {6 R+ R7 Y3 H2 } { 2 W3 @4 p# J4 g: E
cylinderValue =(double *)malloc( nFields * sizeof(double) ); 2 K v9 G+ F W; x9 x
for( short index = 0; index < nFields; index++ )
3 n% |9 D8 d& ~9 d" P- ? { m7 a7 Z' Z l
rs.GetFieldValue( index, temp ); $ @, {+ V9 n; l, q% ~1 b. K' d" |( x0 s; e
cylinderValue[index] = temp.m_dblVal; 0 H$ L4 A2 w: K* J' m! s7 O
} ' n% W4 `% k9 U" K: D0 e
sprintf(cyl_height,"%f",cylinderValue[0] );
* f" K7 r8 ~7 }3 C; q3 @/ Y sprintf(cyl_diam,"%f",cylinderValue[1] );
* h1 T* w$ @ b2 w; \# e; r2 C+ d: i* Q; W- A6 _* A7 u
rs.MoveNext( ); ' W* ]2 b$ T ]& t% F {* O
free(cylinderValue); / Z+ r( b7 J' K/ O2 B, c# [) G
}
7 ~# ^" x$ Y# [ rs.Close( ); // 关闭记录集 + z" ~. d+ h- f8 K
}
) I# N2 x! h5 d# H: Q Database.Close(); // 关门数据库连接 $ Y1 ^9 S& n. U! S! o+ T4 c( S
} " ]9 f" ^' h/ O3 u
} - Z. V/ Q3 N# _2 d; a
9 M! N4 ~8 Q( E% U6 l: m. L- C
: w/ }+ w& S; X3 s6 [ ]1 ScaTCh( CDBException *pe ) // 出错处理 0 B# _" r% R- i; b8 ^' {( \1 k
{ + M6 ~& @+ O+ x( c4 }- k- N
AfxMessageBox( _T("Exception!" )); * _1 d) R+ h {2 n3 V+ p
AfxMessageBox( pe->m_strError ); & R; `8 p, _5 b
pe -> Delete( ); 7 K d- G; P( q1 r
} 1 Q4 S4 P: P I. |- p/ w+ E4 N
}" F: l. Q& [. O, U. R6 e
5 e: \* ~" x, j; k0 C" F- M
, ?& Z: s. K% Z" q, U
" u1 G' W* d" X8 c! b) F |
|