|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 ~1 T3 m) |4 [5 g I! f4 e
头文件,加入 #include <afxdb.h>* k# S6 _; [1 G4 }$ Y# y9 [
; R3 }+ k' l" d4 b( C7 M A2 F
void excelTest::do_it()
+ Z" |$ U$ e0 \ a: |& B{
% Y0 b4 t( s8 S& ?2 W
* N8 x; T# }' ~* _$ H' K // TODO: add your code here
# V: o4 M, t% D1 J$ V, J+ U5 m$ S* _; W# c( }
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse 4 c; T/ F! r* R& V) f- T
CString SQLCommand = "select * from plmhome"; // SQL查询语句
5 |: G' m0 Y& M u DWORD dwOptions = 0; // 设置连接的建立方式
+ P0 K: J7 g) S8 t1 m CDBVariant temp; // 数据库数据通用类型 : X# j. p& d p- z) p
int result; // 储存返回值的变量 7 [( u2 }' k+ x0 E
char cyl_height[133]; ; e/ U! M! F1 U- ], C
char cyl_diam[133]; . j7 m# ~ v4 N6 }) ?
double *cylinderValue = NULL;
1 S$ _6 h, _; t& n' a6 M
; V" s: i1 ~* l# I8 j: I, D' y+ C try
, h: F: K) v8 j' Q% u0 C { % H' b. T6 Z" ]2 o
# c0 w! t8 I& u$ X8 g+ Z
result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库 ' P) e5 Q K, k( a" z* D
if( result != 0 ) // 如果成功打开
, o, c _7 G. X# \5 u& i! k' K { $ o& ?/ L% h* m2 [# l+ `
CRecordset rs( &Database ); // 定义记录集 3 u; B8 @' ^. G7 ?, u' _8 G8 |4 D
if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
' D6 g! E; U3 h1 I { + b8 Y9 `) ~0 i, m" U G! [
rs.MoveFirst( ); $ B% O# B" }3 y. x) C3 k `
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 & {0 g; t. W/ Y A2 i1 p0 F
while( !rs.IsEOF( ) ) 0 N+ ?- f" L" l$ y, \0 @8 l. R
{
! g& S: T- r, f$ o; {7 H7 i cylinderValue =(double *)malloc( nFields * sizeof(double) ); 3 S8 s' K& x, f" J! b
for( short index = 0; index < nFields; index++ )
: k/ x9 K3 Z8 T4 t, {0 d3 u {
/ M5 ^' @- e6 B rs.GetFieldValue( index, temp );
0 j7 H F6 D" C1 U6 s! j( u! p cylinderValue[index] = temp.m_dblVal;
4 [" b- ~ v: V. U2 h1 X }
7 B* v9 z9 A" r sprintf(cyl_height,"%f",cylinderValue[0] ); : E" D6 n# G& Q) i( y7 p$ u
sprintf(cyl_diam,"%f",cylinderValue[1] );
2 \4 M& `" k9 i0 _/ W% n Q- p6 p4 p0 D
rs.MoveNext( ); 8 b, l- r4 k* `8 v: b) ^4 M/ n
free(cylinderValue);
$ d, }) `1 ]$ ]& y6 E } - U0 p2 ~9 `& L0 ]) O3 E
rs.Close( ); // 关闭记录集
# G. H0 J& w+ s$ J; r } / e1 B# r! j Q1 g9 w
Database.Close(); // 关门数据库连接
! t% i S- x; s3 H }
+ d* A4 e% J2 c/ } } % v: r' {* W* t. H2 D! d
* Z W' V% {0 X3 ]1 Z! p
% o! g' @9 V( w
caTCh( CDBException *pe ) // 出错处理
7 _3 n0 U$ D2 E9 J( w: \, v {
$ o0 J& H7 L3 x0 i6 A, P# K' \ AfxMessageBox( _T("Exception!" )); 1 q4 w6 `8 }6 w. A* q
AfxMessageBox( pe->m_strError ); & L. |/ |9 K' L/ `
pe -> Delete( );
1 N* v8 ?4 \% I" v( _2 q: C: Q1 N } ) f$ M# }3 H: y7 M1 @* H
}$ a8 x1 G" k- L7 k0 l
@3 ~5 p& e0 y4 J, g
# P' t2 o3 O' o; l. O7 l+ L4 J4 w0 k" t
|
|