- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
運作環境 Win 2003 + SQL2005 Std.
開發環境 XPP IIS5.1 + SQL2005 Express
因為要幫忙改善一個用 JScript 寫的 asp 系統, 建置開發環境卻碰到資料庫連線上的問題
同樣的連線字串用 VBScript 語法寫都可以連 SQL 2005 Express 資料庫
換成了 JScript 語法就都不行, 不知道是有什麼限制嗎?- [START]<br />
- <%
- connStr = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User Id=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;"
- connStr = "Provider=SQLNCLI;Data Source=localhost\SQLEXPRESS;User ID=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;Persist Security Info=True;"
- set conn = Server.CreateObject("ADODB.Connection")
- conn.Open connStr
- set res = Server.createObject("ADODB.Recordset")
- res.Open "select top 20 * from USERS ", conn
- Do While not res.EOF
- For i = 0 To res.Fields.Count - 1 Step 1
- Response.write res.Fields(i).Value & " "
- Next
- Response.write "<br />" & vbCrLf
- res.MoveNext
- Loop
- res.Close
- conn.Close
- set res = Nothing
- set conn = Nothing
- %>
- [END]
複製代碼 以上程式碼兩種連接字串都可以正常執行
但若是用 JScript 語法來寫就無法連線到資料庫- <%@language="JScript"%>
- [START]<br />
- <%
- var connStr = "Provider=SQLOLEDB;Data Source=localhost\SQLEXPRESS;User Id=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;";
- var connStr = "Provider=SQLNCLI;Data Source=localhost\SQLEXPRESS;User ID=dbuser;Password=P@ssw0rd;Initial Catalog=MYDB;Connect Timeout=15;Persist Security Info=True;";
- var conn = Server.CreateObject("ADODB.Connection");
- conn.Open(connStr);
- var res = Server.createObject("ADODB.Recordset");
- res.Open("select top 20 * from USERS ", conn);
- while(!res.EOF) {
- for(i = 0; i<res.Fields.Count; i++) {
- Response.write(res.Fields(i).Value + " ");
- }
- Response.write("<br />\n");
- res.MoveNext;
- }
- res.Close
- conn.Close
- res = null
- conn = null
- %>
- [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 |
|