Username: Password:

一个连接数据库的Class类
来源:作者: 发布时间:2007-12-26 02:16:08

option explicit

local variable(s) to hold property value(s)
private lsserver as string local copy
private lsdatabase as string
local variable(s) to hold property value(s)
private lsusername as string local copy
private lspassword as string local copy
private lsselectsql as string local copy
local variable(s) to hold property value(s)
private lstable as string local copy

public property let table(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.table = 5
lstable = vdata
end property


public property get table() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.table
table = lstable
end property

public property let selectsql(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.selectsql = 5
lsselectsql = vdata
end property


public property get selectsql() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.selectsql
selectsql = lsselectsql
end property



public property let password(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.password = 5
lspassword = vdata
end property


public property get password() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.password
password = lspassword
end property



public property let username(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.username = 5
lsusername = vdata
end property


public property get username() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.username
username = lsusername
end property



public property let server(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.server = 5
lsserver = vdata
end property


public property get server() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.server
server = lsserver
end property

public property let database(byval vdata as string)
used when assigning a value to the property, on the left side of an assignment.
syntax: x.database = 5
lsdatabase = vdata
end property


public property get database() as string
used when retrieving value of a property, on the right side of an assignment.
syntax: debug.print x.database
database = lsdatabase
end property


public function connectdatabasebyodbcdns(lsdns as string) as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "dsn=" & lsdns & _
";uid=" & lsusername & _
";pwd=" & lspassword
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyodbcdns = conn
exit function
errhandle:
err.raise 102, "dbconn.cls", "cant connect to the " & database & " database!"
end function
public function connectdatabasebyodbc() as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "provider=msdasql.1" & _
";user id=" & lsusername & _
";password=" & lspassword & _
";persist security info=false" & _
";initial catalog=" & lsdatabase & _
";data source=" & lsserver
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyodbc = conn
exit function
errhandle:
err.raise 108, "dbconn.cls", "cant connect to the " & database & " database!"
end function
public function connectdatabasebyodbcprovider() as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "driver={sql server};server=" & lsserver & _
";database=" & lsdatabase & _
";uid=" & lsusername & _
";pwd=" & lspassword
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyodbcprovider = conn
exit function
errhandle:
err.raise 101, "dbconn.cls", "cant connect to the " & database & " database!"
end function
public function connectdatabasebyoledb(lsserver as string, lsusername as string, lspassword as string, lsdatabase as string) as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "provider=sqloledb.1" & _
";user id=" & lsusername & _
";password=" & lspassword & _
";persist security info=false" & _
";initial catalog=" & lsdatabase & _
";data source=" & lsserver
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyoledb = conn
exit function
errhandle:
err.raise 100, "dbconn.cls", "cant connect to the " & database & " database!"
end function
public function connectdatabasebyodbcdnsforcrystal(lsdns as string) as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "dsn=" & lsdns & _
";uid=" & lsusername & _
";pwd=" & lspassword & _
";dsq=" & lsdatabase
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyodbcdnsforcrystal = conn
exit function
errhandle:
err.raise 104, "dbconn.cls", "cant connect to the " & database & " database for crystal!"
end function
public function connectdatabasebyoledbforcrystal() as adodb.connection
on error goto errhandle
dim conn as new adodb.connection
dim strconn as string
strconn = "driver={sql server}" & _
";uid=" & lsusername & _
";pwd=" & lspassword & _
";server=" & lsserver & _
";database=" & lsdatabase
if conn.state = adstateopen then
conn.close
end if
conn.open strconn
conn.cursorlocation = aduseclient
set connectdatabasebyoledbforcrystal = conn
exit function
errhandle:
err.raise 105, "dbconn.cls", "cant connect to the " & database & " database for crystal!"
end function
public function openrecordset(lsserver as string, lsusername as string, lspassword as string, lsdatabase as string, lstable as string, optional lsselectsql as string) as adodb.recordset
on error goto errhandle
dim rs as new adodb.recordset
rs.cursortype = adopenstatic
rs.locktype = adlockoptimistic
if rs.state = adstateopen then
rs.close
end if
if trim(lsselectsql) = "" then
set rs = connectdatabasebyoledb(lsserver, lsusername, lspassword, lsdatabase).execute("select * from " & lstable)
else
set rs = connectdatabasebyoledb(lsserver, lsusername, lspassword, lsdatabase).execute(lsselectsql)
end if
set openrecordset = rs
exit function
errhandle:
err.raise 110, "conndb.cls", "cant open the recordset"
end function
public sub updaterecordset(lstable as string, lsupdatecondition as string)
on error goto errhandle
connectdatabasebyodbcprovider.begintrans
connectdatabasebyodbcprovider.execute ("update " & lstable & " where " & lsupdatecondition)
connectdatabasebyodbcprovider.committrans
errhandle:
connectdatabasebyodbcprovider.rollbacktrans
err.raise 111, "conndb.cls", "cant update the recordset!"
end sub
private sub class_initialize()
lsserver = "prc_msdnt"
lsdatabase = "northwind"
lsusername = "sa"
lspassword = "sa"
lsselectsql = ""
lstable = ""
end sub

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅