数据库中参数化查询的实现

Author: 张华贵 Date: 2001年 40期

?牐犚訴B为例,在数据库开发实例中我们知道,数据的查询共有两种,一种是直接使用SQL语句,如:在人事档案管理的实例中,可用“SELECT DISTINCT 文化程度 FROM TABEL1”这样的语句来查找出数据库中所有人员的文化程度,并且不会显示重复的这个字段。另外一种方法是定义一个QUERYDEF,实现参数化查询,方法如下:
  ?牐?1.建立参数字符串,设置每个参数的名字和数据类型。首先用PARAMETERS子名说明参数,其格式是:
  ?牐燩ARAMETERS text datatype [,text datatype[,....]]
  ?牐犉渲衪ext是一个字符串,它是参数的名字,如果参数名含有空格,则要用方括号括起来。datatype用来指定参数的数据类型,例如:
  ?牐燬QL$="PARAMETERS 姓名 text,职务 text,文化程度 text"
  ?牐犝庋徒?立了一个可以按姓名、职务和文化程度查找人事档案中人员的参数,本例指定了三个参数,其数据类型都为text。
  ?牐犠⒁猓赑ARAMETERS子句中,如果参数含有空格或圆点符号,则必须用方括号括起来。
  ?牐?2.定义查询语句
  ?牐牻?立了参数字符串后,就可以定义查询语句,所定义的参数放在WHERE子句中,如:
  ?牐燬QL$=SQL$&"SELECT * " & "from tabel1" & "where (([tabel1.姓名]=姓名) "&"and([tabel1.职务]=职务)"&"and(tabel1.文化程度=文化程度))"
  ?牐?3.建立QueryDef对象
  ?牐牻酉吕矗颐强梢杂蒙厦娴腟QL语句建立一个QueryDef对象:
  ?牐燬et QD=MyDB.createQueryDef("Find Employee",SQL$)
  ?牐犝庋ü厦娴牟街瑁颐蔷徒?立了一个在VB中的参数化查询。