Public Function connstr(strdate)
On Error GoTo Err
    endtime = "2007-10-16"   '14
    connstr = ""
    If regdateend(strdate) = False Then
    If DateDiff("d", Now, endtime) > 0 Then        '15
       connstr = "Provider=Microsoft.Jet.OLEDB.4.0;jet oledb:database password=goohww;Data Source=" & Server.MapPath(databasepath)
    End If  '20
    Else
       connstr = "Provider=Microsoft.Jet.OLEDB.4.0;jet oledb:database password=goohww;Data Source=" & Server.MapPath(databasepath)
    End If
    If connstr = "" Then
        Response.Write "未注册或使用权限受到限制,请联系程序制作商!"   '19
    End If
    Exit Function
Err:
    If Err.Number = -13572468 Then Err.Raise -13572468
    AspToDll_WriteLog "\datedll.asp, connstr: " & Err.DescriptionEnd Function这是OALL.class1里的一个函数
以下是我的调用
set OAnum=createobject("OAdll.Class1")
databasepath = "database\officedata.mdb"
set conn = server.createobject("adodb.connection")
conn.open OAnum.connstr("0")
sub Endconn
 conn.close
 set conn = Nothing
set OAnum = nothing
end sub
请问各位高手,这是哪里的错啊,我是初用DLL,很多不懂的地方,请指教啊!~页面错误提示:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 /system_conn.asp,行 12 

解决方案 »

  1.   

    哪里用到啦ODBC ?
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  2.   

    干吗要用ODBC阿?直接指定数据源不就行了?
      

  3.   

    这里有加密的数据库密码
    现在问题不是出在ODBC上,是调用的这句
          connstr = "Provider=Microsoft.Jet.OLEDB.4.0;jet oledb:database password=goohww;Data Source=" & Server.MapPath(databasepath)
    函数根本没读出来,应该是函数出了问题
      

  4.   

    把 Server.MapPath(databasepath) 改成databasepath
    调用时给databasepath 赋值为绝对路径
      

  5.   

    谢谢啊,我把值放到函数里了,但是还有个问题Function RUM_SETChr(strdate)
    On Error GoTo Err
    Dim RUM_REG
    RUM_REG = strdate
    RUM_REG = RUM_REG & "ABCDEFGHIJKLMNOPQRSTUVWXYZ01" '将字符串生成数组
    RUM_REG = Class2.MD5(RUM_REG & "20061022/1618*7337+41")
    RUM_REG = Class2.MD5(Right(RUM_REG, 12))
    For i = 1 To Len(RUM_REG - 3)
    RUM_REG = Class2.MD5(RUM_REG) & 9
    Next
    RUM_SETChr = RUM_REG
        Exit Function
    Err:
        If Err.Number = -13572468 Then Err.Raise -13572468
        AspToDll_WriteLog "\datedll.asp, disksign: " & Err.Description
    End Function这个函数我写法对吗怎么读不出值来,没有错误提示,但页面显示为空值,我是这样调用的:
    set comnum=server.createobject("OAdll.Class1")
    comnum.RUM_SETChr(num1&num2)
    sumdate=comnum.RUM_SETChr(num1&num2)但sumdate的值为空??
      

  6.   

    以上的问题解决了
    还有个地方提示有错,再请帮忙看一下,函数如下:
    Public Function userlimit(strdate)
    On Error GoTo Err
    usercont1 = 1000
        userlimit = False
        If connstr(strdate) <> "" Then
        Set usercount = conn.Execute("select count(*) from [userdata]")(0)
        If usercount <= usercount1 Then
           userlimit = True
        End If
        usercount.Close
        End If
        Exit Function
    Err:
        If Err.Number = -13572468 Then Err.Raise -13572468
        AspToDll_WriteLog "\datedll.asp, userlimit: " & Err.Description
    End Function提示如下:
    2006-10-27 11:11:54    \datedll.asp, userlimit: 需要对象
      

  7.   

    Set usercount = conn.Execute("select count(*) from [userdata]")(0)usercount = conn.Execute("select count(*) from [userdata]")。fields(0)
      

  8.   

    我知道是缺conn了,我没在DLL函数中加上,只在asp中有,不能直接调用asp中的
    所以我又在使用conn前加上
        Set conn = Server.CreateObject("adodb.connection")
        conn.open connstr(strdate)
    但是还是不成功,错误日志:2006-10-27 17:22:18    \datedll.asp, userlimit: 对象不再有效。怎么回事啊!~
      

  9.   

    DLL函数中不用Server对象
    直接
    Set conn = CreateObject("adodb.connection")
      

  10.   

    Public Function userlimit(strdate) as boolen
      

  11.   

    Set usercount = conn.Execute("select count(*) from [userdata]")(0)
    改为
    usercount = conn.Execute("select count(*) from [userdata]")(0)usercount 没有声明变量,或者变量的类型不对或者打开数据库连接对象出错conn
    总之你的代码写得太乱了,不规范
    非常简单的一个问题弄的这么复杂