|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. }* h& n5 {: e' E" Y) z
头文件,加入 #include <afxdb.h>5 f) @" c8 \$ _# t9 |; E" n
/ o# B5 A% a( @. T$ L, xvoid excelTest::do_it(). {& J/ v# L0 Z& @) ^! ]
{
}) ^2 ?% {( u ~! G3 E9 d! S6 m% k9 g* _/ H6 u, k4 Q, b6 ]) L
// TODO: add your code here
) {% ~& W# l. Q4 }" D0 Y. z( { ?3 [. G, L! l. }0 T
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse
3 a A# V& O! v, a( Q( E CString SQLCommand = "select * from plmhome"; // SQL查询语句 & u5 M( O- b; v6 F/ f. q8 B
DWORD dwOptions = 0; // 设置连接的建立方式
' W0 Z. ?; d* l% A4 e CDBVariant temp; // 数据库数据通用类型 : m2 f( ]1 e! n+ C7 H$ _& m
int result; // 储存返回值的变量 6 W' b: ]4 T0 {
char cyl_height[133];
1 ?6 h& T L( J char cyl_diam[133]; 0 e: w: B$ W. \& A1 S; \7 ~
double *cylinderValue = NULL;
$ \& K- e* d% [7 g4 D) y+ l
) K/ J8 P1 Q; G; G try
* L0 @2 @: F* x5 {! [6 T; o( n { ' U1 c _& Y" t+ [: l% G5 Z
. \4 k- C2 p }( L% L
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
4 D4 ~! M. |; v' `/ M6 m6 B if( result != 0 ) // 如果成功打开
! h( j0 d2 O; d3 N { 2 c o$ Q) V) H8 U
CRecordset rs( &Database ); // 定义记录集
. Q' I; V: U$ E/ J if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
# r+ ]; v, {! ~! { {
9 U* U1 z" G0 w7 ]: D rs.MoveFirst( );
; P" H! G3 w3 k short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
, r& ]9 ? Y* W( `! I while( !rs.IsEOF( ) )
) [6 b, E/ Y: s! t { x/ {& l1 y8 E% t+ @5 d8 l
cylinderValue =(double *)malloc( nFields * sizeof(double) );
! O' X! y: O* D3 ~3 g5 f$ z( m for( short index = 0; index < nFields; index++ )
/ Q# X4 r" k9 N: d: b6 C {
; c! X2 A, {1 x* I6 ~+ ^' ]0 M rs.GetFieldValue( index, temp );
0 k9 g* Q9 n; P+ _: U cylinderValue[index] = temp.m_dblVal; J; B+ T+ b. J p; P) q0 f, W
} 1 h0 s& U0 W% F0 D# j
sprintf(cyl_height,"%f",cylinderValue[0] );
( j, R7 ~5 T9 b" k sprintf(cyl_diam,"%f",cylinderValue[1] ); 1 K& H/ o7 A# T4 g# m
1 h8 R5 J. R: ^
rs.MoveNext( ); " t9 C Y* _/ ]* k$ w* t6 p
free(cylinderValue); 7 Y i9 E/ l, _8 W9 z9 H$ E
}
B; ^7 Z3 L) X rs.Close( ); // 关闭记录集
# [1 `0 \/ G. j r- S }
& x. T* t" ?( f5 N1 f% a; H$ i Database.Close(); // 关门数据库连接
* K' c9 [" t, C9 j9 ~) x w }
4 \; Z! q) v7 u! i/ Z }
! j8 P+ g4 s: i) K' q
8 j) m% B5 e) p+ a P
0 q0 p& K" q7 w: k" e2 T; ]caTCh( CDBException *pe ) // 出错处理
8 q- |) b/ d% ?" D% Q {
& E( M1 q' z8 r0 I AfxMessageBox( _T("Exception!" )); 7 A( }8 m, b9 _% E* T
AfxMessageBox( pe->m_strError );
8 g) | U4 U# G pe -> Delete( ); d4 ~2 z7 F" l& N7 _ `% t
} - J2 p7 w: p5 ~# d7 f4 A. r6 v
}
1 h9 {' l' v9 x3 q1 t# u, R
2 O4 {5 y, x# u
- y% U$ T% u* `0 q! M) N( y& u7 G5 _) w8 e( N5 G4 a' I
|
|