Vb6 使用变量输入表值

Vb6 使用变量输入表值,vb6,Vb6,虽然存储了直接值,但我无法使用变量作为表的值。 我在INSERT INTO语句中得到的错误是“语法错误”。我如何克服这个问题 sDBPAth = App.Path & "\SETMDBPATH.mdb" sConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & sDBPAth & ";" & _ "Jet OLE

虽然存储了直接值,但我无法使用变量作为表的值。 我在INSERT INTO语句中得到的错误是“语法错误”。我如何克服这个问题

sDBPAth = App.Path & "\SETMDBPATH.mdb"
sConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                  "Data Source=" & sDBPAth & ";" & _
                 "Jet OLEDB:Engine Type=4;"
                 ' Type=4 to create an Access97 mdb, If omitted Access2000 mdb

' ------------------------
' Create New ADOX Object
' ------------------------
 Set oDB = New ADOX.Catalog
 oDB.Create sConStr

 Set oCn = New ADODB.Connection
 oCn.ConnectionString = sConStr
 oCn.Open

 Set oCM = New ADODB.Command
 oCM.ActiveConnection = oCn
 oCM.CommandText = "CREATE TABLE MDBPATH(" & _
        "MDBPATH TEXT(40)      NOT NULL," & _
        "pass  TEXT(10))"
 oCM.Execute

' Populate the table.
 oCn.Execute "INSERT INTO MDBPATH VALUES (sDBPAth, 1,)" 'If 'sDBPath' is used the word sDBPath is stored not the variable value
'
' ------------------------
' Release / Destroy Objects
' ------------------------
 If Not oCM Is Nothing Then Set oCM = Nothing
 If Not oCn Is Nothing Then Set oCn = Nothing
 If Not oDB Is Nothing Then Set oDB = Nothing

 End Sub
试一试

末尾有一个额外的逗号,需要在字符串外部传递变量

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"
在这种情况下,由于没有传入用户输入,所以相对来说比较节省,但如果继续像上面那样构建INSERT语句,则很容易受到

Try的攻击

末尾有一个额外的逗号,需要在字符串外部传递变量

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"

在这种情况下,由于没有传入用户输入,因此相对来说比较节省,但是如果继续像上面那样构建INSERT语句,您将容易受到

的攻击,您需要调用字符串外部的变量

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"

您需要调用字符串外部的变量

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"

如果
sDBPAth
是一个实际的VB变量,则需要使用如下内容:

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', '1')"
因此,
insert
语句是根据变量的值而不是固定字符串构造的


此外,语句中似乎有多余的逗号,可能需要在这两个值周围加引号,因为它们都是
text
类型。

如果
sDBPAth
是一个实际的VB变量,则需要使用以下内容:

oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', '1')"
因此,
insert
语句是根据变量的值而不是固定字符串构造的


此外,您的语句中似乎有多余的逗号,并且可能需要在这两个值周围加引号,因为它们都是
text
类型。

您需要修改SQL语句以允许应用程序替换sDBPath值

' Populate the table. 
 oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"

您需要修改SQL语句以允许应用程序替换sDBPath值

' Populate the table. 
 oCn.Execute "INSERT INTO MDBPATH VALUES ('" & sDBPAth & "', 1)"

你仍然在括号内有多余的逗号。Woops:)没有抓到那一个。你仍然在括号内有多余的逗号。Woops:)没有抓到那一个。哈,哈,那太好笑了(事实上,小Bobby表是警告我们SQL注入攻击的一个表)。好的一个!仅此一项就+1。哈,哈,那太好笑了(事实上,Little Bobby Tables是关于SQL注入攻击的一个警告)。很好的一个!仅此一点就需要+1。从脚本中可以看出,它有一个名为“MDBPATH”的表,其中有两个字段“MDBPATH”和“pass”“.oCn.Execute”插入到MDBPATH(MDBPATH)值(“&sDBPath&”)中-这将只向表中添加MDBPath,而不添加密码。密码将为空。非常感谢。这对我帮助很大。从脚本中可以看出,这是一个名为“MDBPath”的表,其中包含两个字段“MDBPath”和“pass”“.oCn.Execute”插入MDBPATH(MDBPATH)值(““&sDBPath&”)-这将只向表中添加MDBPATH,而不添加密码。密码将为空。非常感谢。对我帮助很大。