bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 MS WebForm Tech ASP 程式 VBScript 改用 JScript 語法資料庫就不能連線 ...
查看: 3691|回復: 1
go

ASP 程式 VBScript 改用 JScript 語法資料庫就不能連線了? [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2011-3-18 11:55 |只看該作者 |倒序瀏覽 |打印
運作環境 Win 2003 + SQL2005 Std.
開發環境 XPP IIS5.1 + SQL2005 Express

因為要幫忙改善一個用 JScript 寫的 asp 系統, 建置開發環境卻碰到資料庫連線上的問題
同樣的連線字串用 VBScript 語法寫都可以連 SQL 2005 Express 資料庫
換成了 JScript 語法就都不行, 不知道是有什麼限制嗎?
  1. [START]<br />
  2. <%
  3. connStr = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User Id=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;"
  4. connStr =  "Provider=SQLNCLI;Data Source=localhost\SQLEXPRESS;User ID=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;Persist Security Info=True;"

  5. set conn = Server.CreateObject("ADODB.Connection")
  6. conn.Open connStr

  7. set res = Server.createObject("ADODB.Recordset")
  8. res.Open "select top 20 * from USERS ", conn

  9. Do While not res.EOF
  10.         For i = 0 To res.Fields.Count - 1 Step 1
  11.                 Response.write res.Fields(i).Value & " "
  12.         Next
  13.         Response.write "<br />" & vbCrLf
  14.         res.MoveNext
  15. Loop

  16. res.Close
  17. conn.Close
  18. set res = Nothing
  19. set conn = Nothing
  20. %>
  21. [END]
複製代碼
以上程式碼兩種連接字串都可以正常執行
但若是用 JScript 語法來寫就無法連線到資料庫
  1. <%@language="JScript"%>
  2. [START]<br />
  3. <%
  4. var connStr = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User Id=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;";
  5. var connStr =  "Provider=SQLNCLI;Data Source=localhost\SQLEXPRESS;User ID=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;Persist Security Info=True;";

  6. var conn = Server.CreateObject("ADODB.Connection");
  7. conn.Open(connStr);

  8. var res = Server.createObject("ADODB.Recordset");
  9. res.Open("select top 20 * from USERS ", conn);

  10. while(!res.EOF) {
  11.         for(i = 0; i<res.Fields.Count; i++) {
  12.                 Response.write(res.Fields(i).Value + " ");
  13.         }
  14.         Response.write("<br />\n");
  15.         res.MoveNext;
  16. }

  17. res.Close
  18. conn.Close
  19. res = null
  20. conn = null
  21. %>
  22. [END]
複製代碼
兩種連線字串的錯誤訊息如下:

Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒絕存取。
/t2.asp, line 8

Microsoft SQL Native Client (0x80004005)
具名管道提供者: 無法開啟 SQL Server 連線 [53].
/t2.asp, line 8
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

2#
發表於 2011-3-18 13:50 |只看該作者
在 blueshop 得到的解答

JScript中,"\"是特殊符號(跳脫字元)
所以連線 connStr 中要用到該符號的話,需用兩個"\\"
  1. var connStr =  "Provider=SQLNCLI;Data Source=localhost\\SQLEXPRESS;User ID=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;Persist Security Info=True;";
複製代碼
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-4-24 06:53 , Processed in 0.018758 second(s), 10 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.