asp编写用数组操作数据库记录的函数

rs_field(),字段名数组,0编号数组为关键字字段

rs_type(),字段类型数组 1、整型 2、字符串 3、真值 4、日期时间

str_field(),返回记录数组

strsql,数据库查询语句

str_error,错误提示

 '****************************************获得记录
sub get_record(rs_colnum,rs_field(),rs_type(),str_field(),strsql,str_error)
  dim resbuff
  dim i
  set resbuff=server.CreateObject("adodb.recordset")
  resbuff.open strsql,conn,1,1
  if err.number <> 0 then
    response.write "数据库操作失败:"&err.description
    response.redirect"error.htm"
     else
       if not resbuff.eof and not resbuff.bof  then
    for i=1 to rs_colnum
         if rs_field(i)<>"" then
       Select Case rs_type(i)
          Case 1
         str_field(i)=resbuff(rs_field(i))
       Case 2
         str_field(i)=resbuff(rs_field(i))
       Case 3
         str_field(i)=get_field_if(resbuff(rs_field(i)),"1","0")
       Case 4
         str_field(i)=resbuff(rs_field(i))
       Case Else
          str_field(i)=resbuff(rs_field(i))
       End Select
    end if
    next
  else
     ' response.Redirect("../public/error.asp?strerror="& str_error)
       end if
    end if
   resbuff.close
  set resbuff=nothing
end sub
'*****************************添加记录,关键字为数据库自动编号
sub add_record(rs_colnum,rs_field(),rs_type(),str_field(),strsql,str_error)
  dim resbuff
  dim i
  set resbuff=server.CreateObject("adodb.recordset")
  resbuff.open strsql,conn,1,2
  if err.number <> 0 then
    response.write "数据库操作失败:"&err.description
    response.redirect"error.htm"
  else
     if  resbuff.eof and  resbuff.bof  then
       resbuff.addnew
    for i=1 to rs_colnum
      Select Case rs_type(i)
            Case 1 'intege
                resbuff(rs_field(i))=cint(str_field(i))
      Case 2 'string
      resbuff(rs_field(i))=str_field(i)
      Case 3
            resbuff(rs_field(i))= getif(str_field(i),"1")
      Case 4 'date
      resbuff(rs_field(i))=cdate(str_field(i))
      Case 5
            resbuff(rs_field(i))= csng(str_field(i))
      Case Else
          resbuff(rs_field(i))=str_field(i)
   End Select
    next
   resbuff.update
  else
      response.Redirect("../public/error.asp?strerror=" & str_error)
     end if
   end if
   resbuff.close
  set resbuff=nothing
end sub
'**********************添加记录,提供用户关键字***************************
sub add_record_key(rs_colnum,rs_field(),rs_type(),str_field(),strsql,str_error)
  dim resbuff
  dim i
  set resbuff=server.CreateObject("adodb.recordset")
  resbuff.open strsql,conn,1,2
  if err.number <> 0 then
    response.write "数据库操作失败:"&err.description
    response.redirect"error.htm"
  else
     if  resbuff.eof and  resbuff.bof  then
       resbuff.addnew
    for i=0 to rs_colnum-1
      Select Case rs_type(i)
            Case 1 'intege
                resbuff(rs_field(i))=cint(str_field(i))
      Case 2 'string
        resbuff(rs_field(i))=str_field(i)
       Case 3
            resbuff(rs_field(i))= getif(str_field(i),"1")
      Case 4 'date
             resbuff(rs_field(i))=cdate(str_field(i))
         Case 5
            resbuff(rs_field(i))= csng(str_field(i))
       Case Else
          resbuff(rs_field(i))=str_field(i)
   End Select
    next
   resbuff.update
  else
      response.Redirect("../public/error.asp?strerror=" & str_error)
     end if
   end if
   resbuff.close
  set resbuff=nothing
end sub

'***************************更新记录******************************
sub update_record(rs_colnum,rs_field(),rs_type(),str_field(),strsql,str_error)
 dim resbuff
 dim i
  set resbuff=server.CreateObject("adodb.recordset")
  resbuff.open strsql,conn,1,2
  if err.number <> 0 then
    response.write "数据库操作失败:"&err.description
    response.redirect"error.htm"
  else
     if not resbuff.eof and not resbuff.bof  then
    for i=1 to rs_colnum
        Select Case rs_type(i)
            Case 1
                resbuff(rs_field(i))=cint(str_field(i))
      Case 2
      resbuff(rs_field(i))=str_field(i)
      Case 3
            resbuff(rs_field(i))= getif(str_field(i),"1")
      Case 4
            resbuff(rs_field(i))= cdate(str_field(i))
      Case 5
            resbuff(rs_field(i))= csng(str_field(i))
       Case Else
          resbuff(rs_field(i))=str_field(i)
   End Select
    next
   resbuff.update
  else
      response.Redirect("../public/error.asp?strerror=" & str_error)
     end if
   end if
   resbuff.close
  set resbuff=nothing
end sub
'****************************删除记录**********************
sub del_record(ifcheck,sql_num,sql(),str_error)
dim resbuff
dim i
dim strsql
if ifcheck=1 then
  set resbuff=server.createobject("adodb.recordset")
   for i=1 to sql_num
       resbuff.open sql(i) & key_id,conn,1,1
        if err.number <> 0 then
            response.write "数据库出错"
        else
         if resbuff.RecordCount>0 then
        response.Redirect("../public/error.asp?strerror=" & str_error)
            end if
        end if
    resbuff.close
 next
 set resbuff=nothing
end if   
  conn.execute sql(0)

end sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值