我有一個文件夾,這個文件夾裏面我有這個文件名的單個文件:特殊字符,MS SQL Server 2012,ASP和SQL?
male♂.txt
我希望把這個文件名到我的SQL Server中使用ASP(VBScript)的2012數據庫:
<%@language=VBScript codepage=65001%><%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=SQL Server Native Client 11.0;Server=localhost;Database=databank;Uid=myuser;Pwd=mypass;"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each file In FSO.GetFolder("C:\inputs\").files
RecSet.Open "SELECT * FROM filenames WHERE fname='"& file.name &"';", Conn, 0, 3
IF RecSet.EOF THEN
RecSet.AddNew
RecSet("fname") = file.name
RecSet.Update
end IF
RecSet.Close
RecSet.Open "SELECT * FROM filenames WHERE fname='"& file.name &"';", Conn, 0, 3
Response.Write "Is EOF: "& RecSet.EOF
RecSet.Close
Next
Conn.Close
'setting variables to Nothing here
%>
當我運行這段代碼後,我使用MS SQL Management Studio檢查數據庫表,並且確實有一個帶有「male♂.txt」的文章。
問題是,ASP頁面輸出「Is EOF:True」,如果我再次運行相同的腳本,在數據庫中會創建另一個「male♂.txt」文章。
我最近從MS Access移到MS SQL Server 2012,上面的代碼按照MS Access(EOF爲false)的預期工作。我究竟做錯了什麼?
想出來,需要在SQL中的字符串之前加N。會發布答案,但stackoverflow有一個遲緩的系統,新帳戶不能發佈答案,直到他們發佈問題後8小時。完全遲鈍。如果我記得的話,我會在幾個小時內回覆併發布答案。 – user3435078
立即嘗試發佈您的答案 - 16個聲望應該足以消除「新用戶」的限制。 (其他SE網站沒有8小時的限制,但是,所以我可能是錯的。) – Martha
用於構建此sql代碼的技術容易受到sql注入攻擊:( –