2013-10-18 30 views
0

我想使用變量來存儲我的數據庫的用戶名和密碼在密碼保護程序中,將它們作爲參數傳遞,然後在VBScript中將它們用作參數到數據庫的信息。這將阻止用戶看到保護數據庫的用戶名和密碼,並允許他們篡改數據庫。vbscript連接數據庫時使用變量

當我在VBScript中有用戶名和密碼時,它工作正常。

strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=JoeSmith;Password=twinkles324"

但是,當我把他們作爲參數傳遞給VBScript中,接受它們作爲參數,並嘗試連接時,我得到的80040E4D錯誤消息:「登錄失敗,用戶‘用戶名’。」

Dim Arg, conn, strConnect, Data1, Data2, Data3, Data4 
Set Arg = WScript.Arguments 
Username = Arg.Item(0) 
Pswrd = Arg.Item(1) 

Set conn = CreateObject("ADODB.Connection") 

strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=Username;Password=Pswrd" 
conn.Open strConnect 

strSQL = "INSERT INTO MyTable (Data1, Data2, Data3, Data4)" VALUES ('" & Data1 & "', '" & Data2 & "', '" & Data3 & "', '" & Data4 & "') 

conn.Execute strSQL 

conn.Close 
strSQL = "" 

任何人都可以幫我找出爲什麼我不能使用變量連接到數據庫嗎?

回答

1

VBScript不會掃描變量名稱的字符串文字。你必須把他們的字符串文字之外:

strConnect = "PROVIDER=sqloledb.1;Data Source=myDatabase;Initial Catalog=myGroup;User ID=" & Username & ";Password=" & Pswrd 

否則你試圖用文字的用戶名&Username

+0

這工作完全登錄。我不敢相信我忽略了這一點。感謝您的幫助。 :) – Lou