QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

[linux教程] Linux下mSQL数据库开发技术

Linux下mSQL数据库开发技术

首先,到站点www.hughes.com.au注册后就能免费下载软件的最新版本。mSQL的安装相当简单,二进制版本(针对某一个硬件平台编译后的软件)的安装只是将文件展开到用户某一目录下然后配置几个参数就可以。例如你下载的文件为:mSQL-2.0.3.tar.gz,你想把mSQL安装到/usr/local目录下,这时,我们需要先将这个文件拷贝到/usr/local这个目录,然后键入命令tarzxvfmSQL-2.0.3.tar.gz,这个命令将展开该压缩文件。一般,mSQL数据系统的所有文件都安装到/usr/local/Hughes目录下。接着就是配置mSQL数据库。你所要做的工作就是要修改/usr/local/Hughes目录下的文件msql.conf。0 c5 @0 `. {5 y' q8 `

9 Z" Y! N* V. Z* Q- Z$ `% k0 W, C, U6 s4 }$ S
  在实际应用中我们改动得最多的是mSQL%26;#8212;User和Admin%26;#8212;User这两个参数。mSQL%26;#8212;User指明运行mSQL数据库服务程序的用户,而Admin%26;#8212;User指明能对mSQL数据库系统执行特权操作(如:关闭数据库服务程序的运行,创建数据库等操作)的用户。因此,如果你希望mSQL服务程序以database这个用户运行,指定admin这个用户能执行数据库操作,你要将mSQL%26;#8212;User和Admin%26;#8212;User所在的行分别改为:mSQL%26;#8212;User=database和Admin%26;#8212;User=admin。另外你还必须将Hughes目录下的文件和目录的属主改为database。在配置完成后,注销当前用户的身份,重新以msql.conf的参数mSQL%26;#8212;User设定的用户登录到系统,进入/usr/local/Hughes/bin目录键入如下的命令:./msql2d%26;amp;,这样就启动了mSQL数据库系统。至于带源码的安装软件,看一看README和INSTALL这些文件一般就能顺利安装完成。# ^9 R2 B+ y% P- R
[color=#FFFFFF']8 m5 j7 j7 s+ h, A
) R1 H. t2 J. d2 _& f( ]6 J1 t

- c2 g2 B2 @* i0 ^% M3 H! M4 s  为了将mSQL集成到用户的应用程序中去,mSQL数据库系统为用户提供了一个C语言的API库和一个解释器:w3%26;#8212;msql,通过C语言的API库,你可以将mSQL集成到用标准C语言开发的应用程序中去。而有了w3%26;#8212;msql这个工具,你可以通过编写C语言脚本语言将mSQL数据库嵌入到html文件中,下面举一程序实例进行说明。
: P: l* b2 ^% j4 e+ O. \. Y% E0 w6 \  x! Q9 H! [/ v
  下面的程序片段要完成的功能是将浏览器页面上提交上来的用户名和口令与表registered%26;#8212;user中的用户名和口令相比较,如果用户名和口令正确,将在页面上显示注册成功的信息,否则提示用户注册失败。采用C语言实现的方法如下所示:
( ~0 ~! q# f0 ?" D1 {( N' O, X3 H, {5 L, a1 V
  voidmain(intargc,charargv); S7 E3 w7 r+ J' \# L

6 N3 R. A. f! |+ E9 l( k# f  //解析用户提交上来的用户名和口令并保存到变量username和password%26;#8212;usr中1 E1 P" ?1 g2 }* K5 i

4 J9 H4 a" i6 r9 M  …( N8 d6 n, @3 m. O6 w  z* C
% G& }0 {8 c9 j" V) [
  //创建与本机的mSQL数据库系统的套接字. m8 P; i8 \* B" ^0 Z0 h6 }

5 b; i& q" `5 S" Y. M* H  sock=msqlConnect(NULL);
; s+ F/ l5 _9 k% ~
/ ~. u1 }& u2 h5 H+ w8 ?/ U  //选择数据库test
+ V: U% |  `6 j" g$ e
9 i2 k7 E& V' m$ B) O0 w/ J& _  if(msqlSelectDB(sock,″test″)==-1)1 j+ S7 h% S1 Z6 J/ L

* D: e. O& I1 d' v! f  //输出数据库选择失败信息, D# M8 h. a/ y/ i- H
5 j8 J$ G; d% a/ w8 O& ]
  …
9 X0 p% i4 c$ G: P; G$ k' g
# y1 @, c  m$ W+ m' s) u) X& t9 |, ]  else3 v: \& h6 b$ d/ V

0 I0 R  j$ [( _  sprintf(buff,″selectfromregistered%26;#8212;userwhereusername=′%s′″,username);
- _. v, E: ]; G3 ~6 O' b9 P
* [; ~7 @+ e: \  //以username查询表registered%26;#8212;user中的记录. Y; }7 z8 Q2 l& t$ b1 I' R  [- L
) h* u9 a% |4 B8 {2 S' g. k5 o
  if(msqlQuery(sock,buff)==-1)//输出查询失败的错误信息6 x; m9 j/ o% Y: Q* t/ F' t+ y& U) x

. h  T3 |  ^/ e+ B; ?5 x  …3 ]4 \1 R( N" a4 O
5 P9 S$ y7 G& B/ P) K" `! q3 j
  //将查询结果保存到m%26;#8212;result类型的指针变量res- W2 ^- _$ R. z5 r% l8 [, t
- Z$ ]* f/ I* n. o2 y
  res=msqlStoreResult();2 |- [1 q; a" E% W- G# L5 A; c
0 J6 O% I7 Z* J  d! G/ p
  //得到查询结果的记录数
; N! b( V0 ]/ c& ?  s3 y
, v% j: u1 i! ^" t4 u- L9 n, e* _: h  numrow=msqlNumRows(res);
3 J' K) ^$ _# K/ _. w0 F8 n! @, H; o' d8 E  L! A) F
  if(numrow==1)
; R- m& Q/ V  ?* l! {
" ~+ ~- e  `* @" Y  //得到当前记录,类型为:m_row
# G2 f. v0 ~+ h  L6 B3 P2 a$ k8 Y) C( \1 ~: X# X9 ~
  row=msqlFetchRow(res);
+ u$ j5 Z! i' K2 m/ Y# W2 Q! ?
4 B( ?, B: [/ f( y  //将保存在表中的口令和用户输入的口令相比较
& t( L1 F) I  b1 o  n& b: |  O7 }0 v4 ]( U( K8 _
  if(!strcmp(password_ur,row2))
5 |& x3 |) J! A" A0 H/ Y8 N+ J2 y6 m' U+ o
  //输出注册成功信息) K* h$ p" V2 h7 ^

6 s; ~. x* o' ^8 X: \  else: B1 D( |# B# M

. ?( w0 Q7 |$ Z6 i0 t  //输出口令不对的提示信息& C4 [0 o) ~) L( V1 y: i
+ m; v8 r8 N) a3 u4 {& F1 X+ W
  else
7 |! i& ~8 Z" H; E9 Z$ S  r; A0 C& T7 x) `' ?4 p  B8 ~0 s( J5 W7 j2 Y( A- l
  //输出用户名输入出错信息
$ d6 s/ P7 |$ @$ I- p/ C
9 k! J! L/ C' [( n0 U3 S  //释放查询结果的指针
/ \, a* o1 ^! }2 G) [- V
; p8 Q* a/ s: a$ z  msqlFreeResult(res);
+ S/ b9 U' J( c" }0 F& y. W$ j  Z' M: t: g
  //关闭数据库系统的套接字
% h$ v5 a' W6 i" s- U$ Z+ o! U) ^0 L
/ K: ?- U4 p# Y# A  msqlClose(sock);# K, g" ]( T/ y1 x! W$ n

# {+ e: c% Y4 t, o( N+ w  return;% q: M* ?# m' z. M* E1 l
$ z* f- W, l4 x3 ~+ m
  以上的例子包含有将mSQL集成到C语言程序中用到的主要函数,这些函数基本能满足应用程序的需要。如果采用w3%26;#8212;msql能解释的类C语言嵌入到html文件中,可以达到同样的功能。与C语言编写的CGI程序需要编译不同,脚本语言不需要编译,该脚本由mSQL数据库系统提供的CGI程序w3%26;#8212;msql来解释执行。脚本中主要的代码段如下所示:
4 l0 k* c. B' Q! k8 C  @$ |' D7 C% b: q: {
  〈HTML〉+ W8 t  S7 F$ J& X# {# P- F, T

( J+ Q+ {" g. Y9 E0 j2 `& [7 u. |  〈HEAD〉
- a2 f+ K% K  X; z6 r9 |1 \/ z6 M5 ]) t8 k" L' }, u; Y
  〈METAV=″Content-Type″CONTENT=″text/html;charset=iso-8859-1″〉, @7 P- {9 A4 a3 I

1 z0 O9 e' p5 a1 v7 F! j! k$ ?7 X  〈/HEAD〉) e2 D& L% B; f- J$ P

7 Y/ v* c9 O* ]+ E  〈bodyTEXT=″#000000″BACKGROUND=″/icon/back.jpg″topmargin=″10″〉; y3 L9 r9 k. q) f& z
# P6 Y- L  K$ ~( u  B
  〈!3 y7 Q$ |  l) z/ \" P# w/ T

& C; |$ A1 o" @0 h. ]3 h  //解析用户提交上来的用户名和口令并. z8 \# A5 L3 X" k

1 `% d* {7 A% o# q- L  保存到变量username和password%26;#8212;usr中$ R* w* h2 F& u# {) }
% f) p2 A( j$ M8 \
  …
1 I$ W4 i- s& {6 |1 O3 K" U! t! q, P6 e* ?$ z8 E1 u
  //创建与本机的mSQL数据库系统的套接字
0 t# v+ l. X7 D- m, y2 R' H/ w2 a' F* q/ g; P% t
  $sock=msqlConnect();6 {7 Y- D, t2 s8 v9 U7 i0 `

% e- q8 c  ]( t  //选择数据库test
- z3 ~6 N1 v! O% w) S
" K$ G" c5 T/ ]( B! K  H  if(msqlSelectDB($sock,″test″)==-1)6 d1 X8 ~  l; g6 O% ], n# I4 N

  N+ ]8 y; f! F1 z9 C+ _- n  //输出数据库选择失败信息
/ n+ }6 r0 {4 h& f$ G2 |( Z; ~4 t* P
% i: X( J# D: x* |$ I: k' c  fatal(″错误:无法与数据库连接n″);
/ X# O# I2 R3 w
" g! L/ j$ @9 |' s8 _) G  else
- P) F9 u" v( @* E9 z" {* r% [' h& l8 L; L
  $buff=″selectfromregistered%26;#8212;userwhereusername=′$username′″;
# D# t8 B/ e1 t
8 L' l! n- B: O# k  //以username查询表registered%26;#8212;user中的记录, Y& `2 |, k: h9 C& {9 S
0 X! T' C0 h( |( w, R/ n
  if(msqlQuery($sock,$buff)==-1): l; ?- J; W1 r+ V; t& t

' n1 k# v/ b$ V$ r* E% U  //输出查询失败的错误信息% L( `1 k/ H: {2 S7 ~0 v! y
; N4 o5 g$ q4 x4 T5 ^3 E
  fatal(″查询错误n″);, J  o$ k' t: G2 g8 M: o! G

/ C+ U5 i, l8 O; y  h1 @  //将查询出来的结果保存到查询结果的指针变量res中3 r6 i+ m- ~. G; ~: a1 |; ^
2 M* }6 f4 b+ h$ }1 L5 |) z. g
  $res=msqlStoreResult();% \2 O8 T+ y( V9 t, O3 b0 z

. \# F+ d8 n9 [8 j- @  //得到查询结果的记录数目
9 X. ?8 v( _4 p
2 i6 R3 G# B2 A2 p  $numrow=msqlNumRows($res);, N6 Z: f, _1 P% M$ E% S
[color=#FFFFFF']
5 _3 J/ g* c' [1 a8 F, {( J, P. \; |# m; A- J: b' C! Q
' A* Z; K  ?8 r$ R  |( p
  if($numrow==1)0 L4 z2 `0 w  J' b2 p5 i, c

: Z8 V& ?2 Q$ s# l  //得到当前记录的指针/ {; z  @4 b) c, N  V4 b- B
+ K2 |5 L$ H# B% d0 l3 w! @
  $row=msqlFetchRow($res);& O; B+ ?$ r, G* s

$ g' \( T9 E5 e( X; V  //将保存在表中的口令和用户输入的口令相比较
4 z( A6 v2 L$ f. a" H$ z- e" L; A- _. }0 z4 L+ u" H
  if(!strcmp($password%26;#8212;ur,$row2))4 N6 O, J6 k; c4 X1 D: ~, C

5 Q5 z* X  E" @( Z, Z  //输出注册成功信息; o& R* Z. M/ a* K" P* F/ @/ x

# H! U$ `& x9 I0 O  echo(″〈center〉注册成功〈/center〉″);
. N  {6 Q, f, j, e, m1 R- m4 u# X( N7 J; ^/ |* J
  else//输出口令不对的提示信息8 b+ Z/ t& {5 z9 c

- G: d, W( R, ~  echo(″〈center〉您输入的口令不正确〈/center〉″);! ^# b& v: x( p6 l# A- ]
: z" U5 d! g! t4 u" {1 k
  else8 l2 D( C6 G/ X7 f% x( q
" F. b8 W  ?7 x) k
  //输出用户名输入出错信息1 I: D$ d* A8 o
1 x% R% R4 c" ^0 ]6 q+ T' U
  echo(″〈center〉您输入的用户名不正确〈/center〉″);; |* i! r$ Z5 R! l9 Y
9 I+ v" ~% q$ |* c5 u1 \+ v
  //释放查询结果占用的内存4 ~4 r0 r6 o" d3 a

; f7 ?: `& @# [6 h' @8 K  msqlFreeResult($res);
8 Y1 A* O. O; O& R. ]+ Q8 ^
1 X8 O5 E6 K' f% a( q# E' p' Q  //关闭数据库系统的套接字0 q! r! s+ e2 g& P+ s2 v
% i- }6 j& j* V' E. Y
  msqlClose($sock);: ]  u# S( a3 p% O$ t/ L, I% P

& O' k" D2 O$ g& N( D  〉7 I; c/ f6 ^% n( A5 y9 r

; x% [, u, ^! I" c0 s* M  〈/BODY〉# h# A" v& Q) M2 i' x1 Q4 Y
& v$ {0 q+ ~5 {$ k
  〈/HTML〉
# u( F# `2 `* Q2 k) [. R5 ]. T
# a4 X* C! ~0 T6 e  b9 \  以上介绍了在Linux下以mSQL数据库系统作为后台数据库开发应用系统的方法。有了这些基本的方法,我们就能开发出各种基于mSQL数据库的应用系统。展望与深入了解智能客户端开发技术及企业案例分析,即将在6个城市拉开帷幕。快快来注册吧!
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

******请登陆论坛查看内容******

(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)
这是赤果果的灌水呐
What good would wings be
if you couldn't feel wind on your face

TOP

发新话题