我有一个试图连接数据库的简单文件 -
<%
Set RSDiscounts = Server.CreateObject("ADODB.Recordset")
RSDiscounts.ActiveConnection = "Data Source=serverName;Initial Catalog=dbName.dbo;Integrated Security=True"
%>
当我运行它时,我得到了 -
error '80040e21'
/filename.asp, line 3
搜索错误代码没有帮助。我最好的猜测是在连接字符串中指定了一些不应该存在的东西。但我使用Visual Studio来创建字符串,并且可以很好地连接到数据库。
有什么方法可以弄清楚什么是错的?这似乎是不可能调试的。
答案 0 :(得分:2)
我认为问题在于您的连接字符串 - 您在那里使用的字符串是ADO.Net,但我不相信它会与ADODB一起使用。
尝试这样的连接字符串:
Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase; Trusted_Connection=Yes
或者这是我的一个旧项目与ADODB(来自asp经典)的连接字符串
Provider=SQLOLEDB.1;Initial Catalog=databaseName;Data Source=serverName;Trusted Connection=Yes
这可能不是100%正确,但你可以在优秀的ConnectionStrings.com找到你想要的所有连接字符串的更多细节。
答案 1 :(得分:0)
我在图书馆写道:
function SqlServerConnectionString( byval psDataSource, byval psCatalog, byval psUid, byval psPw)
'______________________________________________________________________________
'
' 'Sql Server Connection String'
'______________________________________________________________________________
dim x
x = "Provider=MSDASQL.1;Persist Security Info=False;User ID=" & psUid & ";Data Source=" & psDataSource & ";Initial Catalog=" & psCatalog
if psPw <> "" then
x = x & ";pwd=" & psPw
end if
SqlServerConnectionString = x
end function
我有类似Firebird,Odbc和Access的例程。
答案 2 :(得分:0)
问题是您正在尝试使用运行脚本的用户连接到数据库。如果这在IIS中运行,它将类似于USR _。
2个替代方案。
创建SQL用户并通过此连接。
PROVIDER = SQLOLEDB;数据源= serverName;初始目录= dbName.dbo; USER ID = WebUser; PASSWORD = WebUserPassword;