ACCESS的参数化查询
作者:亮亮 日期:2008-04-09
总结了下,封装为下面的两个函数,以后用起来就方便了,现把这两个函数转到我自己的博客上来。
1.执行插入,修改,删除
程序代码Function cmdFun(ByVal sql,ByVal pArr,ByVal vArr)
constr="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("/testasp/data/data.mdb")
set conn=server.CreateObject("adodb.connection")
conn.open constr
set cmd=server.CreateObject("adodb.command")
set cmd.ActiveConnection=conn
cmd.CommandType=1
cmd.CommandText=sqlstr
cmd.Prepared = true
pArrLen=Ubound(pArray)
for ii=0 to pArrLen
cmdName="cmdParaName"&ii
cmdPara=split(pArray(ii),",")
set cmdName=cmd.CreateParameter(cmdPara(0),cmdPara(1),cmdPara(2),cmdPara(3))
cmd.Parameters.Append cmdName
cmdName.value=vArray(ii)
next
cmd.Execute
set cmd=nothing
set conn=nothing
End Function
使用时
使用时:
sqlstr="insert into guestBook(mem_Author,mem_PostIP,mem_PostTime,mem_Content) values(?,?,?,?)"
’pArray为创建的parameter对象,以数据的形式;vArray是值,也以数组的形式,注意要和parameter对应
pArray=Array("'mem_Author',200,1,50","'mem_PostIP',200,1,50","'mem_PostTime',7,1,10","'mem_Content',200,1,255")
vArray=Array("测试常量","192.168.1.213","2008-01-08","function测试是")
cmdFun sqlstr,pArray,vArray
2.查询数据
程序代码Function cmdFun2(ByVal sql,ByVal pArr,ByVal vArr)
constr="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("/testasp/data/data.mdb")
set conn=server.CreateObject("adodb.connection")
conn.open constr
set cmd=server.CreateObject("adodb.command")
set cmd.ActiveConnection=conn
cmd.CommandType=1
cmd.CommandText=sqlstr
cmd.Prepared = true
pArrLen=Ubound(pArray)
for ii=0 to pArrLen
cmdName="cmdParaName"&ii
cmdPara=split(pArray(ii),",")
set cmdName=cmd.CreateParameter(cmdPara(0),cmdPara(1),cmdPara(2),cmdPara(3))
cmd.Parameters.Append cmdName
cmdName.value=vArray(ii)
next
set rs=cmd.Execute
if not rs.eof then
cmdFun2=rs.GetRows()
else
cmdFun2="no"
end if
rs.close
set rs=nothing
set cmd=nothing
set conn=nothing
End Function
使用时
sqlstr="select mem_Author from guestbook where mem_Author like ? or id=?"
’pArray为创建的parameter对象,以数组的形式;vArray是值,也以数组的形式,注意要和parameter对应
pArray=Array("'men_Author',200,1,50","'id',3,1,50")
vArray=Array("%特%","5")
rst=cmdFun2(sqlstr,pArray,vArray)
if isArray(rst) then
response.Write(rst(0,0))
else
response.Write(rst)
end if
一些常用的常量参数
CommandType类型
adCmdText=1 :表示处理的是一个 SQL 语句;
adCmdTable=2 :表示处理的是一个表;
adCmdStoredProc=4 :表示处理的是一个存储过程;
adCmdUnknow=8 :表示不能识别,它是默认值。
Parameter 对象
Type 指定 Parameter 对象的数据类型,可以使用符号常量为其赋值。如:
adDate=7 :表示日期值;
adInteger=3 :表示4字节的带符号整数;
adDecimal=14 :具有固定精度和范围的精确数字值;
adDouble=5 :双精度浮点值;
adVarChar=200 :表示字符串值。
Direction 参数指定 Parameter 对象类型,可以设置或返回以下某个值:
adParamInput=1 :指定为输入参数(默认值);
adParamOutput=2 :指定为输出参数;
adParamInputOutput=3 :指定为输入和输出参数;
adParamReturnValue=4 :指定为返回值。
Size 指定参数值最大长度,能字符或字节数为单位。
Value 指定 Parameter 对象的值。
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: