0

我正在尝试使用变量将数据库的用户名和密码存储在受密码保护的程序中,将它们作为参数传递,然后在 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 = ""

谁能帮我弄清楚为什么我不能使用变量连接到数据库?

4

1 回答 1

1

VBScript 不会扫描字符串文字以查找变量名。您必须将它们放在字符串文字之外:

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

否则,您将尝试使用文字用户名登录&Username

于 2013-10-18T13:08:05.700 回答