dll连接数据库成功,但还是有点疑惑没有解决。关于怎么把sql语句传到dll中去的问题??

我用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>
Published At
Categories with Web编程
comments powered by Disqus