Option Explicit
'VB ActiveX DLL 类模块代码
'
'-----引用ASP中的一些设置------
Private ScriptingContext As ASPTypeLibrary.ScriptingContext
Private Server As ASPTypeLibrary.Server
'以下两个子程序是必须的
Public Sub OnStartPage(PassedScriptingcontext As ScriptingContext)
Set ScriptingContext = PassedScriptingcontext
Set Server = ScriptingContext.Server
End Sub
Public Sub OnEndPage()
'取消所有的引用
Set ScriptingContext = Nothing
Set Server = Nothing
End Sub
'如使用SQL的数据库,上面这些可以不要,否则要引用asp.dll Microsoft Active Server Pages Object Library
'要引用 Microsoft ActiveX Data Objects 2.8 Library
Public Function ConnS() As ADODB.Connection
Dim Con As ADODB.Connection
Set Con = New ADODB.Connection
'ACCESS
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("#webdb.mdb")
'SQL
'Con.Open "Provider = SQLoledb; User ID = sa; Password = 123456; Initial Catalog = bbs; Data Source = 192.168.0.100;"
Set ConnS = Con
Set Con = Nothing
End Function
'ASP的CONN.ASP中的写方法
Dim Conn, Con
Set Conn = Server.CreateObject("ADODB.Connection")
Set Con = Server.CreateObject("工程名称.类模块名称")
Set Conn = Con.ConnS
'ASP中就可以使用如rs.open "Select * FROM [Table]",conn,1,1、Conn.Excute("Select * FROM [Table]") 这些一样操作了
Top
回复人: laihongbo524(风铃夜思雨) ( ) 信誉:96
2005-1-11 14:00:55
得分:0
如果要求可修改的
VB中的代码如下
Public Function ConnS(ByVal DbFile As String) As ADODB.Connection
Dim Con As ADODB.Connection
Set Con = New ADODB.Connection
'ACCESS
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbFile
Set ConnS = Con
Set Con = Nothing
End Function
'ASP的CONN.ASP中的写方法
Dim Conn, Con
Set Conn = Server.CreateObject("ADODB.Connection")
Set Con = Server.CreateObject("工程名称.类模块名称")
Set Conn = Con.ConnS(server.mappath("dbname.mdb"))
Top
回复人: mackyliu(NB联盟--风流才子) ( ) 信誉:100
2005-1-11 14:09:14
得分:2
没意义的事少做点吧,兄弟。怕人家下载数据库有办法解决的,完全没必要用到组件
Top
回复人: qizu(沁竹) ( ) 信誉:100
2005-1-11 14:11:42
得分:10
组件工程
1.建立组件
工程名:ConDBDLL
类模块:cs
Dim rp As Response
Dim rq As Request
Dim ap As Application
Dim sr As Server
Dim sn As Session
Public Sub OnStartPage(MyScriptingContext As ScriptingContext)
Set rp = MyScriptingContext.Response
Set rq = MyScriptingContext.Request
Set sr = MyScriptingContext.Server
Set ap = MyScriptingContext.Application
Set sn = MyScriptingContext.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 ConnectDB() As Variant
ConnectDB = "driver={SQL Server};server=(local);database=数据库名;uid=用户名;pwd=密码"
End Function
2.连接信息
dim Conn
Dim Condl
Dim ConnStr
set Condl=Server.CreateObject("ConDBDLL.cs")
'ConDB就是创建的DLL对象
ConnStr = Condl.ConnectDB()
'连接两部分内容组成字符串
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接失败!"'注释,需要把这几个字翻译成英文。
Response.End
End If
Top
回复人: fronm(时间) ( ) 信誉:100
2005-1-11 14:12:30
得分:2
up
Top
回复人: hoggio_1980(南林浪子) ( ) 信誉:100
2005-1-11 14:16:40
得分:2
关注!
Top
回复人: zhzhuo(编程混饭吃) ( ) 信誉:100
2005-1-11 14:48:41
得分:2
up
Top
回复人: bignobig() ( ) 信誉:100
2005-1-11 15:01:48
得分:0
qizu(沁竹)我见过,但生成DLL时出现“用户定义类型未定义”,无法生成?
Top
回复人: bignobig() ( ) 信誉:100
2005-1-11 15:04:17
得分:0
laihongbo524(风铃夜思雨)的也一样,我直接粘贴的,出现“用户定义类型未定义”
Top
回复人: laihongbo524(风铃夜思雨) ( ) 信誉:96
2005-1-11 15:05:44
得分:0
楼上,这样吧,简单点
Public Function ConnectDB() As string
ConnectDB = "driver={SQL Server};server=(local);database=数据库名;uid=用户名;pwd=密码"
End Function
2.连接信息
dim Conn
Dim Condl
'连接两部分内容组成字符串
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
set Condl=Server.CreateObject("ConDBDLL.cs")
conn.open Condl.ConnectDB()
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接失败!"'注释,需要把这几个字翻译成英文。
Response.End
End If
Top
回复人: bignobig() ( ) 信誉:100
2005-1-11 15:11:53
得分:0
生成3个文件“.exp,.lib”这两个有用吗?
Top
回复人: Newrocky(罗罗) ( ) 信誉:90
2005-1-11 15:15:06
得分:10
to laihongbo524(风铃夜思雨)
你这样有什么用???
还不是一样的把连接串拿出来了?
楼主要求是把连接串封装在DLL中啊!
其实,只要返回CONNECTION对象就可以啦!
'VB部分
'这里的工程需要引用ADODB
Public Function ConnectDB() As ADODB.Connection
Dim conn as new Adodb.connection
STRConnect = "driver={SQL Server};server=(local);database=数据库名;uid=用户名;pwd=密码"
conn.open strConnect
Set ConnectDb=conn
End Function
'ASP部分
dim Conn
Dim Condl
'连接两部分内容组成字符串
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
set Condl=Server.CreateObject("ConDBDLL.cs")
set conn=Condl.ConnectDB()
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接失败!"'注释,需要把这几个字翻译成英文。
Response.End
End If
Top
回复人: newhandtoo(停留卡) ( ) 信誉:96
2005-1-11 15:15:27
得分:2
要dll那个就行了
Top
回复人: bignobig() ( ) 信誉:100
2005-1-11 15:38:09
得分:0
我用的Access数据库,连接失败,注册了组件,重起了机子,但是连接失败!
Public Function ConnectDB() As Variant
ConnectDB = "DBQ=" & server.mappath("abc.mdb") & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=abc"
End Function
dim Conn
Dim Condl
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
set Condl=Server.CreateObject("ConDBDLL.cs")
conn.open Condl.ConnectDB()
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "ERR"
Response.End
End If