数学建模社区-数学中国

标题: 用C++Builder 建立数据库VCL使用经验 [打印本页]

作者: 韩冰    时间: 2005-1-26 12:36
标题: 用C++Builder 建立数据库VCL使用经验
<>  </P>
) `4 y9 i( d, e# p7 ]<>杨超 </P>- U5 }4 G" l4 N/ B: K
<>  </P>
( j: r/ W9 X0 @+ H8 T3 D<>  随着数据库的广泛应用,数据库编程已经成为程序设计中发展迅猛的一支。 </P>
! k% a; ~# H( }  ~9 c0 m- s+ y7 C<>C++ Builder在数据库开发方面具有的强大功能是无可比拟的,你甚至可以不 </P>
% `9 e. u2 a) k  X6 s<>写一行程序就生成漂亮的数据库程序。 </P>, W5 ~5 Z# x+ ^6 f
<>  </P>3 Y/ R/ u1 X. t2 _( t
<>  下面对C++Builder中的几个数据库VCL的使用技巧做一下介绍: </P>
# W" i% V  G+ i6 z8 U, U- G<>  </P>
+ f% P  v0 o, u<>  一、DBGrid控件 </P>
9 J, V) _( J6 }0 F; X<>  </P>  h! z0 ?& x3 [* d. T5 `- Z
<>  1.设置DBGrid的字段显示宽度属性 </P>& g0 C3 `7 Y( \3 ?
<>  </P>
2 H8 Y1 A! y7 ^! n: ^% K( H3 q<>  为了在DBGrid中建立较小的列,你必须建立一个显示标题,它等于或小于字 </P>& ]9 D0 T/ L) z  U& Y) M* t! ]
<>段值。例如,你希望建立一个只有三个字符宽的列,你的列标题显示必须只有三 </P>
; A5 X5 R* W; R/ m4 V% X, V; F<>个字符或更少。 </P>
" X0 {! ?* J2 k: ~; J<>  </P>' Z4 O9 n+ V6 W" V
<>  2.改变DBGrid的显示字段及日期显示格式 </P>* y& j" {' L6 l  G% ~9 M4 ?
<>  </P>- s4 E( f& Z* U: g/ G% R& s
<>  (1)双击DBGrid对应的Table1,进入字段编辑器。 </P>
9 F2 ?* \2 h; Y( d7 ]4 `3 k0 ^<>  </P>
" Z  X. E% ?; N' b; e. T+ Z- b<>  (2)点右键出现选单选“Add Fields…" ,出现添加字段对话框,选择要添加 </P>5 ~+ q* E0 g6 G6 a/ K$ ]
<>的字段(该字段将在运行时由DBGrid显示)然后点OK按钮。 </P>9 k, `+ ?: n1 Y
<>  </P>1 [# |  ~# X1 g% \1 j' G6 ^& K
<>  (3)假设添加了“日期”字段,点该字段,在属性表中的:DisplayLabel中 </P>
+ ~+ z& ]/ t% Z1 K+ J6 I, R<>填入你希望DBGrid显示的字段名。如果原来字段名是英文的,这里用中文名后 </P>9 j3 c# {; S& r& V
<>DBGrid将显示中文名。在DisplayFormat中填入:yyyy-mm-dd,以后日期将按 </P>
0 M; j* E$ y  j" C) _. x5 C9 s- ^<>1999-05-28格式显示。 </P>
/ s  N" J2 Y, f4 c; n& Q<>  </P>7 _6 f' D. r8 A; `: k
<>  二、Tquery控件 </P>
3 @0 r, O0 |# F% V' Q6 X% }* {  @; k<P>  </P>
2 ]- ?5 x2 @" s- G% C<P>  Tquery 控件是数据库编程中非常重要的一个控件,它负责通过BDE与数据库 </P>
* j) Y+ v% I% p8 `<P>建立联系,通过SQL语句方便的建立查询。Query必须建立相应的SQL才能生效。 </P>0 O  @+ c! H/ f# }
<P>  </P>
1 K, V+ \* L) l: D2 S( A, q0 H% b. f! A<P>  </P>
/ Y3 e% G" H1 A+ g) d. |& A3 T2 E8 n<P>  Tquery的参数设置如下: </P>
3 O" H' `' y9 m% n<P>  </P>8 i4 n8 p4 |. B. i8 X% @9 W
<P>  (1)在SQL属性中:Select * from 表名 where 字段名=:变量名 </P>
2 Z0 a' a! \$ X7 \  t  y/ ?<P>  </P>$ T! k0 Y1 D# C. |: u7 X7 M
<P>  跟在“ : "后面的是变量。这样写后,在参数属性中就可以修改该变量的数 </P>5 w/ k6 _0 e2 x, Z  b. s* X
<P>据类型等。 </P>
. E1 [* c/ @2 P. k/ \: n<P>  </P>! o" H- J- f0 H% W3 e# o6 q& P
<P>  (2)对变量的赋值: </P>  q: h5 y7 W4 l! O
<P>  </P>- a: Z2 ~8 J, f& K5 w
<P>   Query1-〉Active=false; </P>
' a+ @# l0 U  o/ f& ~! Y. G! S<P>  </P>
- T% t' H4 G1 x) X9 m4 L8 G  d. x<P>   Query1-〉Params-〉Items[0]-〉AsString=Edit1-〉Text; </P>8 o/ G) }7 I" @- A; \' i
<P>  </P>6 R5 V# `  j) U) n
<P>   Query1-〉Active=true;//查找符合变量的记录 </P>
2 ?. O( E- k+ J6 R% c& I9 k<P>  </P>4 C* G5 T/ ~# P# d4 @7 L! o
<P>  (3)用DBGrid显示结果 </P>& a" j- T, e+ k/ B3 ?1 y
<P>  </P>+ I7 f" o8 L, R/ c
<P>  DBGrid的DataSource与DataSource1连接,而DataSource1的DataSet与 </P>
- z4 l  Q, o3 x7 `& O$ l6 _% B<P>Tquery1 连接。 </P>
4 x( W$ j; b/ t! H$ x+ p<P>  </P>
" M! C, M0 J) ^1 d2 v8 S<P>  三、应用示例 </P>; Q# g+ k) e$ k0 f+ y6 x8 Q
<P>  </P>- \& B# P9 y9 k+ W5 L  [7 R- L
<P>  通过Query控件嵌入SQL语句建立的查询比Table更简单、更高效。 </P>* u! y2 R2 N0 N, T' Q/ Z( F
<P>  </P>+ Z) y$ J5 ^; H! A2 k* j5 E) B5 a
<P>  用一个简单的代码来说明如何建立查询程序: </P>7 }8 R3 L* X! s0 r' u) a
<P>  </P>: O1 I" M! Z: p0 q
<P>  例如,要建立一个检索表1中书名为book1的程序则在表单上放置DBGrid, </P>
. u3 ]; U8 i7 I% |& d<P>DataSource,Query三个控件加入以下代码: </P>. ~# T' g# i9 U3 V4 F0 Z6 h; Y  h. |' J
<P>  </P>
% W4 `$ n0 |& A. ^2 p. [<P>  DBGrid1-〉DataSource=DataSource1; </P>
# ?" s3 m% e8 {<P>  </P>, f; P1 h) I8 i( W& t, \
<P>  DataSource1-〉DataSet=Tqery1; </P>
; j' N, d2 O  ?6 a/ m3 h, _<P>  </P>
' g5 J1 D" _: B4 P( @: w<P>  Query1-〉Close(); </P>" U1 v8 y1 x: V1 v/ k; o8 u
<P>  </P>2 F! f8 s2 C( N5 w5 A
<P>  Query1-〉SQL-〉Clear(); </P>
7 f; B$ r4 _: C: J. G$ ^, N<P>  </P>
3 i, p9 J; [9 X" Q) M7 [% t<P>  Query1-〉SQL-〉Add(″Select * From 表 Where (书名=′book1′ ″ </P>
: Z1 o* z# C: _4 p<P>); </P>
! G/ y! i$ M. z+ A<P>  </P>
! x' }" \; ?1 q- N/ V8 t% C7 j<P>  Query1-〉ExecSQL(); </P>9 D2 j7 m  d" q. w( O
<P>  </P>! r% u! e" H. r& f; [% }1 q
<P>  Query-〉Active=true; </P>6 i& \  {- m* V' E" X$ k/ G
<P>  </P>2 Q, r4 V) }! _& M
<P>  你就可以在生成的表格中看到所有名称为book1的记录。 </P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5