|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
, p! p* |) j% B5 |+ i l P# y6 I# V头文件,加入 #include <afxdb.h>
* Y, j* N" V' `8 s- A5 K% S5 X0 O2 i+ b4 y9 F3 s
void excelTest::do_it()- {# F, O' S* h- }/ l! f
{
2 F R- i5 E4 k- g# r9 U( @1 [6 C
// TODO: add your code here' D/ G1 b; z0 J- [
5 D% z4 D% q S' O2 _; W4 n" T CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse ! {1 |1 f% K5 k) V$ m
CString SQLCommand = "select * from plmhome"; // SQL查询语句 4 n; [3 [3 m9 O6 ]& T
DWORD dwOptions = 0; // 设置连接的建立方式 6 N6 f5 R4 D9 y# d8 r- n
CDBVariant temp; // 数据库数据通用类型 2 C/ x% R2 E& W( H9 ?" ?! U8 c
int result; // 储存返回值的变量
+ Q F+ D- q/ L5 g( C char cyl_height[133]; ~, `$ P# m. @ q
char cyl_diam[133]; 0 h a3 B5 |6 U" P+ Z
double *cylinderValue = NULL; 7 ?7 g+ n7 }/ d$ M0 ]+ c1 ]
" l& G) d3 Z' O( G8 T8 g
try
/ B2 X+ o( h3 l# Q7 [3 i! E; ? {
3 e; [4 n4 f9 {, q1 b' L
, \8 z! Q* z2 K7 R0 j0 i result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
( W) v5 ]2 j- @0 x: Q5 x if( result != 0 ) // 如果成功打开 * D/ f6 \2 e- ^7 j+ n+ b
{ 7 u6 w6 G# l) _2 n/ [
CRecordset rs( &Database ); // 定义记录集
4 r2 f2 R# f) E# V/ R if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false ) , o: D+ D3 R. B
{
5 w, Z7 B/ W3 a/ j8 n rs.MoveFirst( );
! k- b! m b* G$ {1 Y short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目
\5 y4 d/ j; `- x while( !rs.IsEOF( ) )
3 o6 i- N# w, n' _; C7 a2 v {
- i; C$ ~9 h) d0 W1 x }. m2 M cylinderValue =(double *)malloc( nFields * sizeof(double) ); $ A: }0 K# I4 C. w
for( short index = 0; index < nFields; index++ ) $ q+ O. |! s& o; Z$ H: Y1 Z+ Q
{
; Z) `7 K6 K0 y" I C1 [: k rs.GetFieldValue( index, temp );
3 k6 V3 o0 m' l; f1 U cylinderValue[index] = temp.m_dblVal; 8 n# j; L+ _" y5 D$ v; E6 |0 s
}
8 r8 W( i1 V. o& q sprintf(cyl_height,"%f",cylinderValue[0] ); ( d7 w8 x! T4 R7 O9 l" T
sprintf(cyl_diam,"%f",cylinderValue[1] );
& u* U' N$ I4 `4 j! ?! Y2 z# e6 k& c8 B
rs.MoveNext( );
" b+ x1 {' e5 V& z, R& V6 |% v free(cylinderValue); & X0 ?% H* X$ u j& @
}
( |' ~& s+ G W2 ~ rs.Close( ); // 关闭记录集 ) R, j6 t7 P) q# @. R
} * k+ B+ R3 T& r+ K* t
Database.Close(); // 关门数据库连接 " X4 n. @2 H, |0 g, G$ `& v6 Z
} [$ Z' g! F" T9 C
}
# ?. r {6 d* e; f
* }& u) c# `5 h) ?1 x s( y0 g/ Q( T8 Y
caTCh( CDBException *pe ) // 出错处理 7 f" W* P0 H# I3 B
{
, v3 h# D) S# [" F$ X# B AfxMessageBox( _T("Exception!" ));
" e7 L4 y$ J3 v: g+ o+ N: \ AfxMessageBox( pe->m_strError ); 4 L: g5 ?& H; E% k1 J: ]3 p
pe -> Delete( ); : E8 y r% r7 V
} # p3 f) q" a$ H7 N5 M9 y
} w: D" {' a N2 T3 Q' Z8 l9 a# J
' D& {1 m6 T }' E6 A2 T
; i# Z* |5 n7 P, I& _9 O# {
3 I$ `1 L: {( E+ Y$ } |
|