|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
% h( v1 w& V4 i# I" z9 I9 X. V
头文件,加入 #include <afxdb.h>
) K4 h9 s: K& j5 L2 `" N5 p% q# Q
void excelTest::do_it()
e6 G3 ^: P. o- V9 z' n2 |{
) K; F* O2 v3 J/ F {
6 ^* J2 A- X- b8 T, y5 j9 q2 J // TODO: add your code here
/ s* ~; N/ L+ `6 k$ d
+ g; d, |2 a" C# y CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
- g$ k5 `5 p# T% S) b$ }) S CString SQLCommand = "select * from plmhome"; // SQL查询语句
1 [8 J3 y* S8 e' b' Y! Z- Q DWORD dwOptions = 0; // 设置连接的建立方式 1 V1 X' ~- K- a/ [* `' x8 w
CDBVariant temp; // 数据库数据通用类型
+ T) V8 x7 F9 j; X int result; // 储存返回值的变量
e9 @+ \- J+ ? char cyl_height[133];
% N$ A! Q h& _ v0 }7 ] char cyl_diam[133]; + n9 W" r0 p! V c( z
double *cylinderValue = NULL; $ a1 Y" {; a6 ^( ^- ~* g
, ^! b) {3 S3 ?! c try & U4 }5 D! {; }! u/ u, X& |
{ ! ?0 D1 ]: F! I' R4 r
5 C: ?4 u3 D7 C" m. w
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 + V; ]. {3 g! b" Z/ _" Y
if( result != 0 ) // 如果成功打开
& |0 f1 L" H4 f$ D2 m8 L! D( m { . _. a6 l+ r8 o
CRecordset rs( &Database ); // 定义记录集
2 E- v! v! T, U( K$ R if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) 2 b* e1 X( P5 @ a: |
{ $ b& W* O. v& I1 S, k) p
rs.MoveFirst( );
* Q# P, |; Q) e0 s7 J: L short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 ( W; Q: W0 b" }, ~4 c* @9 |& X: ?: G
while( !rs.IsEOF( ) )
" Q7 h1 o |. O, n' {8 j* S {
6 o; U. P9 F" X# M4 l2 @- m; F cylinderValue =(double *)malloc( nFields * sizeof(double) ); ( ?: ~9 [1 f6 X$ _
for( short index = 0; index < nFields; index++ ) / E' p7 d0 U! K2 n3 B Q
{ : p k I" w8 T; V
rs.GetFieldValue( index, temp );
5 `" d# a C6 F0 C cylinderValue[index] = temp.m_dblVal; 4 m8 b' }- ^) D, q& ]( R( W2 X2 q
}
) l! L+ C4 f+ V' W( ] sprintf(cyl_height,"%f",cylinderValue[0] ); % R+ S& f. s2 ?% G N' F% Q
sprintf(cyl_diam,"%f",cylinderValue[1] );
# {9 Q/ ?4 n. D$ v- G
9 ]4 s% i1 A0 H: I- r+ y* \ rs.MoveNext( );
: n0 t, U( A' l. W* e3 d( i free(cylinderValue); ; o4 p# V, _$ O v; ?) D$ p; N
}
7 h) ^4 U+ c, d6 C$ a9 H rs.Close( ); // 关闭记录集 ' y7 G4 c; h Z" X y
} & n" w |- ?, Q9 r4 t, P9 V/ v
Database.Close(); // 关门数据库连接 G+ S0 c; o. T7 I
} 7 N7 B9 W9 L' w6 s6 {! c, f0 O
}
# q* Q! b2 C: r2 g# C. x8 S( B
( ~' @, b* Z7 \& T- Y4 r; ]; V8 E
caTCh( CDBException *pe ) // 出错处理
5 f" u% C$ z# Q8 ]+ ? {
) y! ]7 B. y8 M7 M. T# T AfxMessageBox( _T("Exception!" ));
6 d5 B( Y* `# N AfxMessageBox( pe->m_strError ); 4 s$ |. F9 K1 Y1 f& y S
pe -> Delete( );
- q& c+ z4 L5 I U+ u } 6 I/ R! }* F) f7 F {) ?% x* {1 h
}5 Y# f; B% w7 \0 Y, U& h- F" L
) Q6 O1 |3 G6 ] |; g
+ ^/ t0 R' n! b5 b c: n' V& T& @( h4 s, a4 A
|
|