将数据库上下文更改为' sqldbname'经典asp的错误

时间:2015-07-16 15:45:08

标签: sql-server vbscript asp-classic

这有几个问题,但据我所知/相信他们根本不帮助我。我的代码以前工作正常。但由于某种原因停止了。我的sql server版本是2012.具体错误是:

[Microsoft][ODBC SQL Server Driver][SQL Server] Changed database context to 'sqldbname'

我的ASP代码:

<!--#include file="connv.inc"-->
<%
n=Request.form("total")
response.write(n)

for x = 0 to n-1
ttitle=Request.form("title_"&x)
title=Replace(ttitle, "'", "''")
id=Request.form("id_"&x)
views=Request.form("vViews_"&x)
likes=Request.form("vLikes_"&x)
description=Request.form("vDescription_"&x)

sql="INSERT INTO tbl_videos(videoTitle, videoId, videoLikes, videoViews, videoDescription, swamCompatible) values ('"&title&"', '"&id&"', '"&likes&"', '"&views&"', '"&description&"', '0')"
connv.execute(sql)
response.write(sql&"<br>")
next
%>

<html>
<head>
<title> Updating Tables </title>
</head>
<body>

</body>
</html>

<!--#include file="closeEmv.inc"-->

connv.inc代码:

<%
set connv = server.createobject("ADODB.Connection")
connv.open "DRIVER={SQL SERVER}; SERVER=52.2.8.73; UID=myuid; PWD=mypwd; DATABASE=sqldbname"
%>

2 个答案:

答案 0 :(得分:0)

尝试用以下部分替换你的connv.inc代码,

<%
set connv = server.createobject("ADODB.Connection")
connv.open "Provider=SQLOLEDB; Data Source=52.2.8.73; Initial Catalog=sqldbname; User ID=myuid; Password=mypwd"
%>

答案 1 :(得分:0)

来自my comments

的一个
  

@JonathanLin您还没有修复任何只是将一种连接类型换成另一种连接类型的东西。您使用SQL Server ODBC Driver此答案会将其更改为Microsoft OLE DB Provider for SQL Server

     

@JonathanLin这完全取决于您使用SQL Server 2005时使用的SQL Server版本,您应该使用SQL Native Client 9.0 OLE DB Provider或更高版本,但在SQL Server 2000之后您应该使用SQL Native Client OLE Provider支持nvarchar(max)等类型,例如(值得注意的是SQL Native Client 9.0向后兼容)

您应该尝试使用最新的提供程序来实现功能的平衡和向后兼容性(您还没有说明您正在使用的SQL Server版本)我建议使用{ {3}}

如果您的网络服务器上未安装此功能,则需要SQL Native Client 9.0 OLE DB Provider并先安装它。

<%
Set connv = Server.CreateObject("ADODB.Connection")
connv.open "Provider=SQLNCLI; Server=myServerAddress; Database=myDataBase; Uid=myUsername; Pwd=myPassword;"
%>

使用此提供程序将确保您在从早期版本的SQL Server升级时可以访问功能,而无需弄乱连接字符串。 NVARCHAR(MAX) (SQL Server 2005首次支持)等功能

旁注:

此外,不考虑在#include文件中打开连接,而是考虑将连接字符串存储为字符串变量,并仅在需要时实例化ADODB.Connection。 实际上,当使用ADODB.Command执行SQL Server命令时,连接字符串变量可以传递给命令对象的ActiveConnection属性,命令对象将为您实例化ADODB.Connection。这样当命令关闭时,连接就是这样。