源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

发一个ASP的ADODB类代码

  • 时间:2020-07-17 19:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:发一个ASP的ADODB类代码
反正我现在用这个做了很多站,自己觉得还是满有用的,所以拿出来和大家分享一下。支持三种数据库连接:MSSQL2000,MSSQL2005,ACCESS 三种方法: select_table(sql) 表查询,返回TRUE或FALSE 当SQL语句出错,或空记录时返回FALSE,否则TRUE update_table(SQL) 表更新,包括update,delete 成功执行返回TRUE,否则返回FALSE,updated为执行后影响记录行数。 insert_table(sql,table,id_column) table为表名,id_column为表中自动编号,自增字段。 当成功执行返回TRUE,否则返回FALSE,指定TABLE,ID_column后,将返回最后添加记录所产生的自增ID。 select_table()相关方法Select_page(page,psize) 分页处理,page为当前页,psize为每页记录行数。 所有操作时,自动检测数据库链接和RS是否打开,执行后将自动关闭数据库链接。 示例: set db = new adodb_class if db.select_table("select * from news order by id desc") then    page = request("page")    Select_page(page,20)'每页20条    for i=1 to 20            response.write db.rs("title")'类内置rs,不可变     db.rs.movenext    if db.rs.eof then exit for    next end if db.rsPage = 总页数,db.nowPage= 经过处理后当前页,db.rsCounts数总记录数量。 if db.update_table("delete from news where ispass=1") then'update同样     response.write "共删除"&db.updated&"行" end if call db.insert_table("insert into news (title,content) values ('"&title&"','"&content&"')","news","id") response.write "最后添加ID为"&db.Insertd 在页面最尾可输出db.readCounts 为查询数据库次数。 -------------------------------------------- 本类好处就是你不必担心忘记关闭数据库链接,不用频繁set rs = server.recordset("adodb.recordset"),也不用set rs = nothing 缺点就是翻页用的传统方式。rs.absolutepage = rs.pagesize ---------------------------------------------------------- <% '/******kshop******/ '        adodb_class.asp        数据库操作类 '        Version                1.0 '        Copyright        [email]simple_1982@hotmail.com[/email] '        E-mail                [email]xsg2005@163.com[/email] '/*****************/ class adodb_class         dim conn,connstr,rs         dim dbclass'数据库类型access,sql2000,sql2005三个值之一         dim SqlDbName,SqlUser,SqlPass,SqlServer         dim SqlAccess         dim Selectd,Insertd,Updated         dim rsCounts,rsPage,readCounts,nowPage '记录集 总数/页数 查询次数         Private Sub Class_Initialize()                         SqlDbName        = ""                         SqlUser                = ""                         SqlPass                = ""                         SqlServer        = ""                         SqlAccess         = "/simple_date/simple_xiehui.mdb"                         rsCounts = 0:rsPage = 1:readCounts = 0:nowPage = 1                         Call OpenConn("access")                         selectd                = 0                         Insertd                = 0                         Updated                = 0         End Sub         '********打开数据库链接******************         Private Sub AccessConn()                         connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(SqlAccess) &";Persist Security Info=False"         End Sub         Private Sub Sql2kConn()                         connstr = "driver={SQL server};server="&SqlServer&";uid="&SqlUser&";pwd="&SqlPass&";database="&SqlDbName         End Sub         Private Sub Sql2k05Conn()                         connstr="Provider=SQLNCLI.1;Password="&SqlPass&";User ID="&SqlUser&";Initial Catalog="&SqlDbName&";Data Source="&SqlServer         End Sub         Private Sub OpenConn(db_class)                         dbclass = db_class                         select case db_class                                 case "access":call AccessConn()                                 case "sql2000":call Sql2kConn()                                 case "sql2005":call Sql2k05Conn()                         end select                         on error resume next                         set conn = server.CreateObject("adodb.Connection")                         conn.open connstr                         if err then                                 Response.write "数据库链接失败<br>sqlstring = " + connstr                                 Response.End()                                 err.clear                         end if         End Sub         '**********结束/查询构造*************         Public Function Select_Table(sql)                         if not not isempty(conn) or isnull(conn) then                                         call OpenConn(dbclass)                                 elseif conn.state = 0 then                                         call OpenConn(dbclass)                         end if                         on error resume next                         Set rs = Server.CreateObject("adodb.recordset")                         rs.open sql,conn,1,1                         if err then                                 Select_Table = False                                 rs.close                                 exit Function                                 err.clear                         End If                         If rs.eof and rs.bof then                                         rs.close                                         Select_Table = false                                 Else                                         Select_Table = true                         End If                         readCounts = readCounts + 1         End Function         '分页处理         Public Function Select_page(page,psize)                         if isnull(page) or page = "" then page = 1                         if page < 1 then page = 1                         if rs.state = 1 then                                 if not rs.eof then                                         rs.pagesize = psize                                         rsPage = rs.pagecount                                         rsCounts = rs.recordcount                                         if int(page) > Int(rsPage) then page = rsPage                                         rs.absolutepage = page:nowPage = page                                 end if                         end if                         End Function         '更新记录         Public Function Update_Table(Sql)                         if not isempty(conn) or isnull(conn) then                                         call OpenConn(dbclass)                                 elseif conn.state = 0 then                                         call OpenConn(dbclass)                         end if                         on error resume next                         if Sql <> "" then                                 conn.Execute Sql,Updated                                 if err then                                                 Update_Table = false                                                 err.clear                                         else                                                 Update_Table = true                                 end if                         Else                                 Update_Table = false                         end if                         conn.close                         Set conn = nothing         End Function         '增加         '输入:insert SQL语句,表名,自增字段         Public Function Insert_Table(sql,table,id_column)                         if not isempty(conn) or isnull(conn) then                                         call OpenConn(dbclass)                                 elseif conn.state = 0 then                                         call OpenConn(dbclass)                         end if                         on error resume next                         if sql <> "" then                                 conn.Execute(sql)                                 if err then                                                 Insert_Table = false:err.clear                                         else                                                 Insert_Table = true                                 end if                                 '获得最后增加ID                                 if table <> "" and id_column <> "" then                                         Set ds = conn.Execute("select "&id_column&" from "&table&" order by "&id_column&" desc")                                 end if                                 if err then                                                  Insertd = 0:err.clear                                         else Insertd = ds(0)                                 end if                                 Set ds = nothing                                 closed()                         else                                 Insert_Table = false                         end if         End Function         '关闭数据库链接         Public Function closed()                         if not isempty(rs) and not isnull(rs) then                                 if rs.state = 1 then                                         rs.close                                 end if                         end if                         rsCounts = 0:rsPage = 1:nowPage = 1         end function         '**********释放类************         Private Sub Class_Terminate()                          readCounts = 0:rsCounts = 0:rsPage = 0                         if not isempty(conn) and not isnull(conn) then                                 if conn.state = 1 then                                         conn.close                                 end if                                 Set conn = nothing                         end if                         if not isempty(rs) then                                 if not isnull(rs) then                                         if rs.state=1 then                                                  rs.close                                         end if                                         set rs=nothing                                 end if                                                 end if         End Sub End Class %>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部