以下是源码,请帮我看看,谢谢了! 我用odbc数据源连接sql server数据库ASPComp,(库和源同名),数据表为:C4UsageTracking C4UsageTracking表字段: UTID int 从1,逐一递增 PageName varchar WhenVisited DateTime 以下是数据库访问组件: UsageTracking组件 UsageTrackingData类 Option Explicit Public Sub AddHit(PageName) Dim Conn As New ADODB.Connection Conn.Open "ASPComp", "sa", "" ‘ASPComp为数据源 ,C4UsageTracking是表名 Conn.Execute "Insert Into C4UsageTracking" _ & "(PageName, WhenVisited) values ( " _ & "'" & PageName & "'," & "'" & Date & "')" End SubPublic Function TotalHits() Dim Conn As New ADODB.Connection Dim RSHits As ADODB.Recordset Conn.Open "ASPComp", "sa", "" Set RSHits = Conn.Execute("Select Count(UTID) As TheCount " _ & " From C4UsageTracking") TotalHits = RSHits("TheCount") End FunctionPublic Function TotalHitsOnPage(PageName) Dim Conn As New ADODB.Connection Dim RSHits As ADODB.Recordset Conn.Open "ASPComp", "sa", "" Set RSHits = Conn.Execute("Select Count(UTID) As TheCount " _ & " From C4UsageTracking where PageName='" & PageName & "'") TotalHitsOnPage = RSHits("TheCount") End Function以下是在asp中的调用: <% Option Explicit Dim MyUT Set MyUT=Server.CreateObject("UsageTracking.UsageTrackingData") //MyUT.AddHit "Home" //与后面TotalHits那句轮流测试 %> <html> <head> <title>home</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body bgcolor="#FFFFFF" text="#000000"> HomePage<br> Total Hits: <%=MyUT.TotalHits%> </body> </html>
组件中改为conn.open "dsn = ASPComp" 看看
0x80040E4D -2147217843 Authentication failed 这个错误应该跟安全认证(Authentication )有关。你的详细出错信息是否如下? Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '\'. Microsoft OLE DB Provider for ODBC Drivers error '80040e4d' [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.如果是,建议你看看如下文章: INF: Authentication Methods for Connections to SQL Server in Active Server Pages (Q247931) http://support.microsoft.com/support/kb/articles/Q247/9/31.ASP另外检查你的SQL的authentication type,以及sa的密码。微软亚洲技术中心 VC技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
启动你的VB,选择ActiveX Dll图标.VB会提供一个默认的工程名(project1)和类名(class1).会将这两个名字都改成你需要的dll文件名和接口名.然后从菜单中选择"工程",在其中选择"引用",就会出现"引用"窗口,从中选择Microsoft Active Server Pages Object Library.然后,把下面这段代码复制到你的新建工程里面,Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyRequest As Request Private MyResponse As Response Private MyServer As Server Private MySession As SessionPublic Sub OnStartPage(PassedScriptingContext As ScriptingContext) Set MyScriptingContext = PassedScriptingContext Set MyApplication = MyScriptingContext.Application Set MyRequest = MyScriptingContext.Request Set MyResponse = MyScriptingContext.Response Set MyServer = MyScriptingContext.Server Set MySession = MyScriptingContext.Session End SubPublic Sub OnEndPage() Set MyScriptingContext = Nothing Set MyApplication = Nothing Set MyRequest = Nothing Set MyResponse = Nothing Set MyServer = Nothing Set MySession = Nothing End Sub然后你就可以像写asp一样,在vb中使用ado,唯一要注意的是不能用response/request...,而是MyResponse/MyRequest...,如下:Public Sub Fx1() Dim conn Set conn = MyServer.CreateObject("adodb.connection") conn.open "dsn=webbus;uid=sa;pwd=" Dim rs Set rs = MyServer.CreateObject("adodb.recordset") rs.open "select * from company", connMyResponse.Write rs("company")rs.Close Set rs = Nothing conn.Close Set conn = Nothing End Sub 如果编译testdll.dll,接口名为test的话然后在asp中就可以 dim obj set obj=server.createobject("testdll.test")obj.fx1() set obj=nothing
我用odbc数据源连接sql server数据库ASPComp,(库和源同名),数据表为:C4UsageTracking
C4UsageTracking表字段:
UTID int 从1,逐一递增
PageName varchar
WhenVisited DateTime 以下是数据库访问组件:
UsageTracking组件 UsageTrackingData类
Option Explicit
Public Sub AddHit(PageName)
Dim Conn As New ADODB.Connection
Conn.Open "ASPComp", "sa", ""
‘ASPComp为数据源 ,C4UsageTracking是表名
Conn.Execute "Insert Into C4UsageTracking" _
& "(PageName, WhenVisited) values ( " _
& "'" & PageName & "'," & "'" & Date & "')"
End SubPublic Function TotalHits()
Dim Conn As New ADODB.Connection
Dim RSHits As ADODB.Recordset
Conn.Open "ASPComp", "sa", ""
Set RSHits = Conn.Execute("Select Count(UTID) As TheCount " _
& " From C4UsageTracking")
TotalHits = RSHits("TheCount")
End FunctionPublic Function TotalHitsOnPage(PageName)
Dim Conn As New ADODB.Connection
Dim RSHits As ADODB.Recordset
Conn.Open "ASPComp", "sa", ""
Set RSHits = Conn.Execute("Select Count(UTID) As TheCount " _
& " From C4UsageTracking where PageName='" & PageName & "'")
TotalHitsOnPage = RSHits("TheCount")
End Function以下是在asp中的调用:
<%
Option Explicit
Dim MyUT
Set MyUT=Server.CreateObject("UsageTracking.UsageTrackingData")
//MyUT.AddHit "Home" //与后面TotalHits那句轮流测试 %>
<html>
<head>
<title>home</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
HomePage<br>
Total Hits: <%=MyUT.TotalHits%>
</body>
</html>
这个错误应该跟安全认证(Authentication )有关。你的详细出错信息是否如下?
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '\'. Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT
AUTHORITY\ANONYMOUS LOGON'.如果是,建议你看看如下文章:
INF: Authentication Methods for Connections to SQL Server in Active Server Pages (Q247931)
http://support.microsoft.com/support/kb/articles/Q247/9/31.ASP另外检查你的SQL的authentication type,以及sa的密码。微软亚洲技术中心 VC技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
Private MyApplication As Application
Private MyRequest As Request
Private MyResponse As Response
Private MyServer As Server
Private MySession As SessionPublic Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set MyScriptingContext = PassedScriptingContext
Set MyApplication = MyScriptingContext.Application
Set MyRequest = MyScriptingContext.Request
Set MyResponse = MyScriptingContext.Response
Set MyServer = MyScriptingContext.Server
Set MySession = MyScriptingContext.Session
End SubPublic Sub OnEndPage()
Set MyScriptingContext = Nothing
Set MyApplication = Nothing
Set MyRequest = Nothing
Set MyResponse = Nothing
Set MyServer = Nothing
Set MySession = Nothing
End Sub然后你就可以像写asp一样,在vb中使用ado,唯一要注意的是不能用response/request...,而是MyResponse/MyRequest...,如下:Public Sub Fx1()
Dim conn
Set conn = MyServer.CreateObject("adodb.connection")
conn.open "dsn=webbus;uid=sa;pwd="
Dim rs
Set rs = MyServer.CreateObject("adodb.recordset")
rs.open "select * from company", connMyResponse.Write rs("company")rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
End Sub 如果编译testdll.dll,接口名为test的话然后在asp中就可以
dim obj
set obj=server.createobject("testdll.test")obj.fx1()
set obj=nothing