|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
+ d* i) c& P; l1 N/ W* d* P
头文件,加入 #include <afxdb.h>
' t' I/ i- v9 b+ O. i; i8 f
; K! f# l2 s& M) svoid excelTest::do_it()
/ r" Q1 m' \' M{
) q6 g7 t& k4 j9 f- J5 w& X' t6 o+ ^' y- `# m0 ^; k+ o
// TODO: add your code here
8 p4 r/ e* S' e* g) @, C- W0 m* J% S5 W* g
CDatabase Database; // 定义一个MFC的CDatabse数据库类对象Databse ' [7 r5 V+ @/ b, G7 v
CString SQLCommand = "select * from plmhome"; // SQL查询语句 4 y7 w' e& k: v
DWORD dwOptions = 0; // 设置连接的建立方式
# ]3 e9 r V# T2 e# N' u CDBVariant temp; // 数据库数据通用类型
- n; M4 `/ ^! j int result; // 储存返回值的变量
3 b1 L/ E4 I; [# ] char cyl_height[133]; % S5 U! s' q: }3 n! E6 r6 W
char cyl_diam[133]; 9 Q _- M* O5 U
double *cylinderValue = NULL; 7 L! D6 S. \0 r, d
# u) |2 l$ R2 ~' C
try , G b4 G/ l6 U, Y) P
{
; \. M7 R. G, W" A [6 A$ A
- ]3 L5 q6 K) n9 z+ U( ]5 X result = Database.OpenEx(_T("DSN=plmhome"), dwOptions ); // 打开数据库
1 l. U9 {) V! i if( result != 0 ) // 如果成功打开 * S5 z1 u8 D0 t. y. Q
{ / x& F+ Z8 J, ?5 F# [
CRecordset rs( &Database ); // 定义记录集
5 a7 B* K8 Z* w if ( rs.Open( CRecordset::snapshot, SQLCommand ) != false )
3 T# F0 J- ]/ X# p {
. U9 K9 H8 z) J% B% `$ m3 c rs.MoveFirst( ); 3 e- O4 S1 g/ M, G% |# x) [$ A
short nFields = rs.GetODBCFieldCount( ); // 获取记录的字段数目 & f) f7 x2 }' Z* \
while( !rs.IsEOF( ) ) % V7 ]0 d+ E# W9 \
{ 5 N: ^5 M) N% C& V) A
cylinderValue =(double *)malloc( nFields * sizeof(double) ); ; q; z( i7 w6 A; Y+ s
for( short index = 0; index < nFields; index++ ) . X4 \. |: M) z& `
{ 6 j8 x2 U: U6 _5 }! J) z2 ~
rs.GetFieldValue( index, temp ); : S8 M; z- c/ ?& g! Y2 A
cylinderValue[index] = temp.m_dblVal;
" j0 ]8 u% d" s. L1 ~0 e }
/ w8 a8 L2 }3 p7 A) E- s sprintf(cyl_height,"%f",cylinderValue[0] ); - O8 {" k: g& D. ?" \. Y0 }7 }
sprintf(cyl_diam,"%f",cylinderValue[1] );
( k9 a7 G {. D" u
. x8 v2 a& h9 s7 f: X0 \$ f& X rs.MoveNext( );
& ]/ Q# x: Z+ c( s' [! Y free(cylinderValue); ; k" \* [' L Q$ G/ ?
} / p* |1 x. d3 |5 D
rs.Close( ); // 关闭记录集
! c* k+ z, T) q: B+ S; Q } 1 q) b& ^4 p; P0 c+ O
Database.Close(); // 关门数据库连接
* Y4 g {, }4 i& y8 N; v } 6 I' l6 u f+ {. y1 j& \
}
6 T% q: r/ L1 b* R; J2 v7 c8 @1 m; B2 A2 O
7 w/ L; d1 e- ?+ fcaTCh( CDBException *pe ) // 出错处理
( h! i0 i9 ~$ m, `0 y, X { , B. |6 n$ H% Z+ S* L5 t
AfxMessageBox( _T("Exception!" )); p+ \0 K0 F$ b; g8 \+ j$ O4 b& f
AfxMessageBox( pe->m_strError );
1 J, ^! v. o; e* M pe -> Delete( );
" {: @* ]: j" G) F6 z7 g3 r }
" i# }: W. Q1 }: E}
+ \8 a1 L7 J" J- f' ~7 {6 o! b) b( O! K' L) {: c
+ K2 t( c. r( Y) r3 l
+ |: K7 V, W# Y- G4 ^ |
|