将原来4个ACCESS数据库的表结构和数据通过access转为sql工具全部导入到一个新库中,然后新建一登陆,设置该登陆为新库的owner,在数据源中新建一系统DSN,测试成功,测试时使用的帐号就是登陆名,密码也是对应密码,运行程序,结果出现上面的提示,我想问,问题出在哪里?
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e4d' [Microsoft][ODBC SQL Server Driver][SQL Server]用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联。 /aspp/index.asp,行 13 相关代码是:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/pindao.asp" -->
<!--#include file="Connections/gupiao.asp" -->
<!--#include file="Connections/pinfo.asp" -->
<%
session.timeout=120'计数器
Set Rec1 = Server.CreateObject("ADODB.Recordset")
sql="select * from dingdanhao where id=2"
Rec1.Open sql,MM_pindao_STRING,3,3
hao=Rec1.Fields.Item("dingdanhao").Value
Set Rec1 = NothingSet Rec1 = Server.CreateObject("ADODB.Recordset")
sql="update dingdanhao set dingdanhao=" & hao+1 & " where id=2"
Rec1.Open sql,MM_pindao_STRING,3,3
Set Rec1 = Nothing
%>
这里的<!--#include file="Connections/pindao.asp" -->代码如下:
<%
Dim MM_pindao_STRING
MM_pindao_STRING = "dsn=hyslcw;"
%>
<!--#include file="Connections/gupiao.asp" -->代码如下:
<%
Dim MM_gupiao_STRING
MM_gupiao_STRING = "dsn=hyslcw;"
%>
<!--#include file="Connections/pinfo.asp" -->代码如下:
<%
Dim MM_pinfo_STRING
MM_pinfo_STRING = "dsn=hyslcw;"
%>
是不是因为所有的dsn都是同一个造成的?还是说在建立系统DSN时没有指定登陆名什么的?

解决方案 »

  1.   

    建立系统DSN时没有指定登陆名吧
      

  2.   

    指定了的呀,就是在sql server应该如何验证登陆ID的真伪那里选择使用用户输入ID和密码的SQL SERVER验证,然后在下边勾上连接SQL SERVER以获得其他配置选项的默认设置,在下边登陆ID处输入该数据库的所有者,输入对应的密码,测试连接正常。
    因为程序源代码中原来使用了4个access数据库,每一个使用的连接DSN都是单独设置的,里面取记录集什么的都用的类似于Set Rec1 = Server.CreateObject("ADODB.Recordset")
    sql="select * from dingdanhao where id=2"
    Rec1.Open sql,MM_pindao_STRING,3,3
    hao=Rec1.Fields.Item("dingdanhao").Value
    Set Rec1 = Nothing
    红色部分的形式,所以改动起来很多,所以我想最多我也就新建4个sql server的系统DSN来解决数据库由access转为sql的问题,没想到出现这样的问题。
      

  3.   

    现在我新建了4个系统DSN,都是sql server类型的,都测试通过了,改成如下:
    这里的 <!--#include   file="Connections/pindao.asp"   --> 代码如下: 
    <% 
    Dim   MM_pindao_STRING 
    MM_pindao_STRING   =   "dsn=pindao;" 
    %> 
    <!--#include   file="Connections/gupiao.asp"   --> 代码如下: 
    <% 
    Dim   MM_gupiao_STRING 
    MM_gupiao_STRING   =   "dsn=gupiao;" 
    %> 
    <!--#include   file="Connections/pinfo.asp"   --> 代码如下: 
    <% 
    Dim   MM_pinfo_STRING 
    MM_pinfo_STRING   =   "dsn=pinfo;" 
    %> 还是同样的错误提示,难道非得用sql oledb这样的连接语句来做?那样工作量就很大了。
      

  4.   

    呵呵,我发现问题所在了,就是MM_pindao_STRING       =       "dsn=pindao;"   这里应该加上用户名密码和数据库才行。
      

  5.   

    原来这么写是因为access数据库在设置系统DSN时没有指定用户名和密码,而在SQL SERVER中是需要设置的。