我正在尝试在VBScript内部建立与SQL服务器的连接。
每当我连接到我的SQL服务器时,网页上都会显示“处理URL时出现问题”并与管理员联系。
我知道我的连接字符串是正确的,因为它适用于所有其他页面。
以下是我目前使用的用于设置SQL连接的代码
Const SQL_Connection_String = "Provider=sqloledb;SERVER=SQLPROD;DATABASE=MyDataBase;UID=MyUsername;PWD=MyPassword;"
Set SQLConnection = CreateObject("ADODB.Connection")
SQLConnection.provider = "ADODB.Connection"
Set SQLConnectionRecordSet = CreateObject("ADODB.Recordset")
据我所知,这应该是在VBscript中设置连接的有效方法。我还没有找到任何关于配置这些连接的好文档。
我想知道的是:我是否正确设置了连接,是否有一些策略可以解决这个问题?意思是我希望能够有一个print语句,如果连接成功,则返回true或false。我还想以某种方式打印我的阅读器的内容,看它是否已从数据库中读取,以及它是否读取了我想要阅读的内容。
感谢您的帮助。我是第一次使用VBscript和ASP.net,所以我不知道任何副词。
答案 0 :(得分:2)
您
SQLConnection.provider = "ADODB.Connection"
绝对是错的。当您在连接字符串中指定提供程序时,删除该行的可能性很小(很小)会使您的脚本“正常工作”。
<强>更新强>
(1)如果您在连接数据库时遇到问题,请使用this excellent source开始理论和示例,创建一个空文件(例如constr.udl),启动它,并使用GUI指定/测试你的连接。离开对话框会将连接字符串保存在文件中,您可以通过一个体面的(启用Unicode的)编辑器从中获取它。
(2)如果ASP页面上有太多错误,请将(简化的)数据库代码解压缩到命令行.vbs脚本;这样你可以专注于一个敌人(当你确定时,处理第二个,你的SELECT返回所需的数据)。
(3)如果您遇到特定SQL语句/功能/表达式的问题,请研究文档;在这种情况下,请查看您最喜欢的SQL书籍或关注Google LIKE (according to the horse)。 JOIN也可能是候选人。然后使用(2)从简单的陈述开始,进入更复杂的之后你已经掌握了看似无聊的东西。 (“Table2.Date LIKE'2011'”可能起作用与否,具体取决于Date列的类型和内容(并且不是Date保留/关键字?)
(虽然Derek肯定会读到他的另一个问题的答案,但是从这里开始的其他人也可能会从阅读this中获益。)
答案 1 :(得分:1)
以下是脚本ADO的一些示例代码:
Set SQLConnection = CreateObject("ADODB.Connection")
SQLConnection.Open ConnectionString
Set rs = CreateObject("ADODB.RecordSet")
rs.Open "SELECT SYSTEM_USER AS Username, session_id, auth_scheme, net_transport, client_net_address FROM sys.dm_exec_connections WHERE (@@SPID = session_id)", SQLConnection
' Loop through each record until there are no more
While NOT rs.EOF
' Loop through each field
For Each field In rs.Fields
output.Write field.Value & " "
next
rs.MoveNext
output.WriteLine
Wend