急,我的DSN为何不行?

xfile 2000-07-25 06:04:00
请帮帮我.DSN连接问题

转换数据库从ACCESS to SQL SERVER时

我开始用的是系统DSN,就是不行,真奇怪?
设置系统DSN没有遇到如何问题,设置时有一测试按钮,试过,无问题,

但在用在ASP中调用该DSN时,出错:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'BYTE-WAY\IUSR_SERVER2'.

后来用手写字符串和文件DSN,都可以,WHY????

1.字符串:
ActiveConn"Driver={SQL Server};" _
&"Server=server2;" _
&"Database=byte-way;" _
&"Uid=sa;" _
&"Pwd=;"
2.文件DSN
[ODBC]
DRIVER=SQL Server
UID=sa
DATABASE=byte-way
WSID=SERVER2
APP=Microsoft(R) Windows NT(TM) Operating System
SERVER=(local)


另:我用的是SQL的用户认证,但用系统DSN就是不行,
因为系统DSN是写注册表的,是不是应从新启动机器一下.
(只是我得机器不能随便启动,只能等下班才能试试,)
那位大侠知道,请先告所我

谢谢
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝈蝈俊 2000-07-26
  • 打赏
  • 举报
回复
看到:

注意:从MDAC2.1开始就不能够在使用这样的方式了,就是只把DSN文件名放在ConnectString中
你必须同时使用DSN,UID,PWD标志。例如下面的方式在MDAC 2.1中将会出错:
oConn.Open "AdvWorks"


了么????
呵呵呵呃呵呵,要仔细看罗。
蝈蝈俊 2000-07-26
  • 打赏
  • 举报
回复
<%
dim conn
Set Conn=Server.CreateObject("ADODB.Connection")
conn.OPen "DSN=sql_test;UID=sa;PWD=19760519;"
%>
就可以了,
xfile 2000-07-26
  • 打赏
  • 举报
回复
谢谢你hblinux,
这是 ghj 以前贴过的,我知道.
但问题是:为何只有系统DSN不行呢,文件DSN和手写字符串就可以?
您能在您的机器上是一是吗?
华南虎哥 2000-07-26
  • 打赏
  • 举报
回复
下面我推荐一篇关于这方面的文章,或许有用:
————————————————————————————————————
袖珍数据库连接查询手册

下面将简单介绍一下几种ADO连接方式:ODBC DSN,ODBC DSN-Less,
OLE DB Provider,和"MS Remote" Provider.
1。ODBC DSN连接
I.DSN
oConn.Open "DSN=AdvWorks;" & _
"UID=Admin;" & _
"PWD=;"
注意:从MDAC2.1开始就不能够在使用这样的方式了,就是只把DSN文件名放在ConnectString中
你必须同时使用DSN,UID,PWD标志。例如下面的方式在MDAC 2.1中将会出错:
oConn.Open "AdvWorks"

II.File DSN
oConn.Open "FILEDSN=\somepath\mydb.dsn;" & _
"UID=Admin;" & _
"PWD=;"
III.ODBC DSN-Less Connections
a)ODBC Text Driver
oConn.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=\somepath\;" & _
"Extensions=asc,csv,tab,txt;" & _
"Persist Security Info=False"
注意:需要在SQL语句中指定使用到的文件名。例如:
oRs.Open "Select * From customer.csv", _
oConn, adOpenStatic, adLockReadOnly, adCmdText
b)ODBC Driver for Access
i)普通安全模式:
oConn.Open _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"Uid=Admin;" & _
"Pwd=;"
ii)如果使用了System database:
oConn.Open _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"SystemDB=\somepath\mydb.mdw;", _
"admin", ""
c)ODBC Driver for SQL Server
i)普通安全模式
oConn.Open "Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=sa;" & _
"Pwd=;"
ii)使用信任安全模式:
oConn.Open "Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=;" & _
"Pwd=;"
注意:要使用空白的Uid和Pwd
d)ODBC Driver for Oracle
i)使用现有的Oracle ODBC Driver from Microsoft:
oConn.Open _
"Driver={Microsoft ODBC for Oracle};" & _
"Server=OracleServer.world;" & _
"Uid=demo;" & _
"Pwd=demo;"
ii)使用老版本的Oracle ODBC Driver from Microsoft:
oConn.Open _
"Driver={Microsoft ODBC Driver for Oracle};" & _
"ConnectString=OracleServer.world;" & _
"Uid=demo;" & _
"Pwd=demo;"
IIII)使用微软的OLE DB Data Link Connections方式Data Link File (UDL)
a)使用绝对路径
oConn.Open "File Name=\somepath\pubs.udl;"
b)使用相对路径
oConn.Open "File Name=pubs.udl;"
V)OLE DB Provider Connections方式
a)OLE DB Provider for ODBC Databases
i)Access (Jet):
oConn.Open _
"Provider=MSDASQL;" & _
"Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=\somepath\mydb.mdb;" & _
"Uid=Admin;" & _
"Pwd=;"
ii)SQL Server:
oConn.Open _
"Provider=MSDASQL;" & _
"Driver={SQL Server};" & _
"Server=carl2;" & _
"Database=pubs;" & _
"Uid=sa;" & _
"Pwd=;"
b)OLE DB Provider for Microsoft Jet (Access)
i)普通安全模式:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"User Id=admin;" & _
"Password=;"
ii)如果使用了System database:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"Jet OLEDB:System Database=system.mdw;", _
"admin", ""
注意:当使用OLE DB Provider4.0版本是,需要把MDB和MDW文件转换成4.0的数据库格式
iii)如果MDB需要一个数据库密码的话:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;" & _
"Jet OLEDB:Database Password=MyDbPassword;", _
"admin", ""
c)OLE DB Provider for Excel Spreadsheet:
oConn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\expenses.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
注意: "HDR=Yes"表示在第一行中是行标题,在provider中将不把第一行包括入recordset中
d)OLE DB Provider for SQL Server
i)普通安全模式:
oConn.Open "Provider=sqloledb;" & _
"Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"User Id=sa;" & _
"Password=;"
ii)使用信任安全模式:
oConn.Open "Provider=sqloledb;" & _
Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"Trusted_Connection=yes;"
注意:"Network Library=DBMSSOCN"声明OLE DB使用TCP/IP替代Named Pipes.
e)OLE DB Provider for Oracle
oConn.Open "Provider=msdaora;" & _
"Data Source=OracleServer.world;" & _
"User Id=sa;" & _
"Password=;"
(VI)Remote OLE DB Provider Connections方式(就是我一直在研究的RDS方式哦,呵呵。):
a)MS Remote - Access (Jet)
i)ODBC DSN:
oConn.Open "Remote Server=http://carl2;" & _
"Remote Provider=MSDASQL;" & _
"DSN=AdvWorks;" & _
"Uid=admin" & _
"Pwd=;"
ii)OLE DB Provider:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\somepath\mydb.mdb;", _
"admin", ""
iii)OLE DB Provider自定义事务对象
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Handler=MSDFMAP.Handler;" & _
"Data Source=MyAdvworksOLEDBConnectTag;"
b)MS Remote - SQL Server
i)ODBC DSN:
oConn.Open "Remote Server=http://carl2;" & _
"Remote Provider=MSDASQL;" & _
"Network Library=DBMSSOCN;" & _
"DSN=Pubs;" & _
"Uid=sa" & _
"Pwd=;"
ii)OLE DB Provider
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://carl2;" & _
"Remote Provider=SQLOLEDB;" & _
"Network Library=DBMSSOCN;" & _
"Data Source=carl2;" & _
"Initial Catalog=pubs;" & _
"User ID=sa;" & _
"Password=;"



--------------------------------------------------------------------------
xfile 2000-07-26
  • 打赏
  • 举报
回复
ghj,您好:

出错提示的意思的确是用该系统DSN登陆用户名是'IUSR_SERVER2',而不是SA。
但我在设置系统DSN时,的确用的是"SA"用户名,密码为空,用的是SQL的用户认证,
而且设置时有一测试按钮,试验过,无任何问题,
为何到ASP调用时,用户名就变了???(SQL7为本地机)

但是用文件DSN时,设置时与系统DSN一样,ASP调用时,却不存在问题,为何???
您能帮我试一下吗,谢谢

xfile 2000-07-26
  • 打赏
  • 举报
回复
谢谢GHJ,用conn.OPen "DSN=sql_test;UID=sa;PWD=;"
可以了,马上加分!!!

1.使用access时,只要设conn.OPen "DSN=sql_test",就行了,WHY?
2.你能顺便回答我下面的另一个问题吗(已贴出):
我用ASP组件CDO发有附件的EMAIL时,接收时为乱码,为何?应如何设置Encodingmethod?
蝈蝈俊 2000-07-25
  • 打赏
  • 举报
回复
该DSN设置有误
出错:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'BYTE-WAY\IUSR_SERVER2'.

提示的意思是用该DSN 登陆用户名是'BYTE-WAY\IUSR_SERVER2'
不是SA

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧