开始数据库操作。
常见的组件封装
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
这段代码不好的一点就是数据库的连接放到了页面中判断,连接成功后,才开始访问数据,看
Flag=DataQuery.GetConn()
If Flag=false then
? ResPonse.Write "数据库没有连结,请检查"
? ResPonse.End
End if
Set Rs=DataQuery.GetEmployeeList()
……
%
?
?
个人认为,最好的做法是:
封装到记录集,组件方法中连接数据库,操作完后,及时关闭
尽量在组件中生成HTML代码,做到全部封装。如下面的这种方式
‘List方法中包含了页面的生成,连接的处理,分页处理等等
??? dim objLoop
??? Set objLoop=Server.CreateObject("WebDbtest.GetInfomation ")
??? objLoop.List()
??? Set objLoop=Nothing
%
而不是部分的封装。