我用dll连数据库成功了
dd.dll
-------------------
Dim rp As Response
Dim rq As Request
Dim ap As Application
Dim sr As Server
Dim sn As Session
Public Sub OnStartPage(mysc As ScriptingContext)
Set rp = mysc.Response
Set rq = mysc.Request
Set sr = mysc.Server
Set ap = mysc.Application
Set sn = mysc.Session
End Sub
Public Sub OnEndPage()
Set rp = Nothing
Set rq = Nothing
Set sr = Nothing
Set ap = Nothing
Set sn = Nothing
End Sub
Public Function Rs(strsql As String) As Recordset
Dim oConn As Connection
Dim oRs As Recordset
Dim strconnstring As String
strconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
oConn.Open strconnstring
oRs.ActiveConnection = oConn
strsql = "Select * From chanpin"
oRs.Open strsql, oConn, 1, 3
Set Rs = oRs
End Function
Public Function DataSourceConnection() As Variant
DataSourceConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
End Function
-------------------------
dd.asp
------------------------
1 dim objConn
2set conn=server.createobject("bb.class1")
3objConn=conn.DataSourceConnection()
4application("strconn")=objConn
5set Rs=Server.CreateObject("ADODB.Recordset")
6sql="select * from chanpin order by ID DESC"
1<table align="center" border="1">
if Rs.Bof and Rs.Eof then
Response.Write "暂时还没有任何数据。"
else
Do while not Rs.Eof
1<tr width="100%">
2<td width="50%">```
3=Rs("name")
4```</td><td width="50%">```
5=Rs("fenlei")
6```</td>
7</tr>
Rs.MoveNext
Loop
end if
Rs.Close()
Set Rs=Nothing
1</table>
-----------------------------
但我发现我并没有用到dd.dll中的 Public Function Rs(strsql As String) As Recordset函数。这个函数显然是传sql语句的函数,但我怎么调用呢?
我前面还是用set Rs=Server.CreateObject("ADODB.Recordset")
sql="select * from chanpin order by ID DESC"来执行sql的,我想用Rs("select * from chanpin order by ID DESC")但老是出错。
---------------------------------------------------------------
Conn.Rs("select * from chanpin order by ID DESC")
另外,刚刚想了下,是不是这样该就可以了
set Rs1=Server.CreateObject("ADODB.Recordset")
set rs1=Conn.Rs("select * from chanpin order by ID DESC")
---------------------------------------------------------------
不是传sql语句,
而是在asp中需要sql的地方调用组件中的方法,
而sql则直接写在方法中,提供接口。
给你个例子参考一下。
Option Explicit
Private Conn As ADODB.Connection
Private rs As ADODB.Recordset
Private Sub Class_Initialize()
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=False"
End Sub
Public Function GetInfo() As Recordset
Dim strSQL As String
strSQL = "Select * From chanpin"
Set GetInfo = Conn.Execute(strSQL)
GoTo LastDeal
ErrorHandler:
'错误处理
LastDeal:
End Function
dd.asp
------------------------
1 dim objConn
2set conn=server.createobject("bb.class1")
3set Rs=conn.GetInfo()
4application("strconn")=objConn
5
1<table align="center" border="1">
if Rs.Bof and Rs.Eof then
Response.Write "暂时还没有任何数据。"
else
Do while not Rs.Eof
1\---------------------------------------------------------------
2
3能邮份源码给我吗,我想调试试看
4
5[email protected]
6\---------------------------------------------------------------
7
8http://www.csdn.net/develop/Article/19/19379.shtm
9\---------------------------------------------------------------
10
11asp 中所有类型都是 Variant
12
13
14所以你在组件和asp的接口以及返回值都不可以使用其他类别!</table>