开始数据库操作。
常见的组件封装
1. ? 把数据库的连接信息封装起来。
1> ???? 直接返回数据库连接串,如,组件中
Public ? Function ? datasource() ? As ? Variant
datasource ? = ? "driver={sql ? server};server=yang;uid=sa;pwd=; ? database=northwind"
End ? Function
?
asp 调用
set obj=server.CreateObject("webdb.getinfo") ??
oconn=obj.datasource()
这样的缺点是很明显的,在 asp 文件中,直接 response.write oconn 即可显示出数据库连接串,并没有起到预期的作用。
?
2> ???? 返回 adodb.connection 对象
Public Function GetConn() As ADODB.Connection
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=;Initial Catalog=Northwind;Data Source=yang"
conn.Open
Set GetConn = conn
End Function
?
Asp 调用
Dim DataQuery
Set DataQuery=Server.CreateObject("WebDbtest.GetInfomation")
set rs=server.createobject("adodb.recordset")
?
sql="select * from employees"
Rs.open sql,DataQuery.getconn,1,3 ???
?
response.Write Rs("LastName")
Response.write DataQuery.getconn.ConnectionString
set Rs=nothing
?
这样看起来不错,只是 Response.write DataQuery.getconn.ConnectionString 还是会显示出数据库连接串,大家可以测试。
?
?
?
2. ? 将组件封装到记录集
可以看一下前段时间写的 http://blog.csdn.net/online/archive/2003/12/11/7764.aspx
这段代码不好的一点就是数据库的连接放到了页面中判断,连接成功后,才开始访问数据,看
1
2
3Flag=DataQuery.GetConn()
4
5If Flag=false then
6
7? ResPonse.Write " 数据库没有连结 , 请检查 "
8
9? ResPonse.End
10
11End if
12
13Set Rs=DataQuery.GetEmployeeList()
14
15……
?
?
个人认为,最好的做法是:
封装到记录集,组件方法中连接数据库,操作完后,及时关闭
尽量在组件中生成 HTML 代码,做到全部封装。如下面的这种方式
1
2
3‘List 方法中包含了页面的生成,连接的处理,分页处理等等
4
5??? dim objLoop
6
7??? Set objLoop=Server.CreateObject("WebDbtest.GetInfomation ")
8
9??? objLoop.List()
10
11??? Set objLoop=Nothing
而不是部分的封装。