mdb update的问题-难道是bug? [已解决]
本帖最后由 freedom 于 2012-1-3 20:24 编辑$test ="update " & $tblname & " set Name='"&$name&"',PassWord='"&$pass&"',Other1='"&$pass&"' WHERE ID" & " = " & $Strnspin
MsgBox("", "", $test)
$addfld.Execute($test)
用update更新数据库的时候,提示update语法不对,在网上查了很多资料,还有论坛上也查了,都是合适的啊。请大神帮忙看看。
我新建了一个数据库,只要列名为 password那么就不能用update 更新数据。。。
$mdb_data_path=@ScriptDir&"\tets.mdb"
$mdb_data_pwd=""
$tblname="users"
$read1="admin888"
$read2="8888888"
$Strnspin="1"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addfld.execute("update " & $tblname & " setname='"&$read1&"',password='"&$read2&"' WHERE id" & " = " & $Strnspin)
$addfld.close
$test = "update " & $tblname & " set name='" & $name & "',Password='" & $pass & "',other1='" & $pass & "' where id=" & $Strnspin试试 本帖最后由 freedom 于 2012-1-3 02:08 编辑
试试
nmgwddj 发表于 2012-1-3 01:51 http://www.autoitx.com/images/common/back.gif
不好意思没看懂这两句有哪里不一样的。。。
现在找到出错的问题了。只要更新 password这个列里的数据就会报错。不更新这个列的数据,数据库就可以正常更新。郁闷了。。。
或是手动在数据库里面把password这个列名,改成 password1也可以正常更新。
难度数据库还可以设置某些列不能用命令更新??直接在access里面是可以修改的。 回复 2# nmgwddj
不好意思没看懂这两句有哪里不一样的。。。
现在找到出错的问题了。只要修改 password这个列就会报错。把修改这个列取消掉,数据库就可以正常更新。郁闷了。。。 是不是数据类型不对? 回复 5# nmgwddj
数据类型都是文本。。
要不加我QQ,我把数据库传你,帮看看?
56559878 ----> COM Error Encountered in 带mdw数据库写入.au3
----> $ErrorScriptline = 34
----> $ErrorNumberHex = 80020009
----> $ErrorNumber = -2147352567
----> $ErrorWinDescription =
----> $ErrorDescription = UPDATE 语句的语法错误。
----> $ErrorSource = Microsoft JET Database Engine
----> $ErrorHelpFile =
----> $ErrorHelpContext = 5003144
----> $ErrorLastDllError = 0 本帖最后由 auto 于 2012-1-3 08:51 编辑
$mdb_data_path=@ScriptDir&"\tets.mdb"
$mdb_data_pwd=""
$tblname="users"
$read1="admin888"
$read2="8888888"
$Strnspin="1"
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addfld.execute("update " & $tblname & " setname='"&$read1&"',password'"&$read2&"' WHERE id" & " = " & $Strnspin)
$addfld.close
中间少了“=”也能更新成功? update 语法错误,去百度一下update的语法!
不要动不动就BUG! 回复 9# hzxymkb
$addfld.execute("update " & $tblname & " setname='"&$read1&"',password='"&$read2&"' WHERE id" & " = " & $Strnspin)
$addfld.execute("update " & $tblname & " setname='"&$read1&"'WHERE id" & " = " & $Strnspin)
那麻烦版主帮看看这两句有什么,有没有什么语法错误,只要更新password列的数据就出现语法错误。
第一句不能执行,第二句就可以。 回复 8# auto
不好意思,输代码的时候,少输了个=号。 回复auto
不好意思,输代码的时候,少输了个=号。
freedom 发表于 2012-1-3 17:34 http://www.autoitx.com/images/common/back.gif
换个列名应该就可以了,应该是保留关键字
password 可以改为PSW 或UserPassword之类的 回复 12# auto
如果能换列名就好了。关键是不能换。 回复auto
如果能换列名就好了。关键是不能换。
freedom 发表于 2012-1-3 17:45 http://www.autoitx.com/images/common/back.gif
如果一定要用数据库保留关键字,可以添加[]来解决
$addfld.execute("update " & $tblname & " setname='"&$read1&"',='"&$read2&"' WHERE id" & " = " & $Strnspin) 回复 13# freedom
传个数据库上来!我这里没有ACCESS·
页:
[1]
2