MDB数据库 更新问题
本帖最后由 shano 于 2010-10-19 13:48 编辑一个库 表名S_data2个字段一个IP 一个DATA
程序1把IP的值写入到数据库后 程序2吧DATA添加到IP 同一行也就是update的问题
我现在用'updateS_dataset DATA = "'& $变量&'"' 会把所有列都更新
请教只更新最后添加的一条记录 不能用where 条件语句因为IP的值不是固定的 而且要写到2个程序里 不能保存为变量
代码如下
Local $datadir = "data.mdb"
local $acc_pwd = ""
_sql_addip("192.168.1.1");
_sql_addDATA($DATA);
Func _sql_addip($ip);数据库添加用户函数
Local $d_name = ""
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $datadir& ";Jet Oledb:Database Password="&$acc_pwd)
$RS.ActiveConnection = $conn
$RS.Open ('Select * From S_data where '& "ip" &'=' & '"' & $ip & '"')
While (Not $RS.eof And Not $RS.bof)
$d_name = $RS.Fields (1).value
$RS.movenext
WEnd
if $d_name <> $ip then
$update = 'insert into S_data (ip) values ("' & $ip & '")'
$conn.Execute($update)
Return 0
Else
Return 1
EndIf
$RS.close
$conn.close
EndFunc
Func _sql_addDATA($DATA);数据库添加用户函数
Local $d_name = ""
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $datadir& ";Jet Oledb:Database Password="&$acc_pwd)
$RS.ActiveConnection = $conn
$RS.Open ('SELECT top 1 * FROM S_data ORDER BY Rnd(id) ')
$update ='updateS_dataset DATA = "'& $DATA&'"'
$conn.Execute($update)
Return 0
$RS.close
$conn.close
EndFunc 建议兄弟使用UDF写,那样的话会简单一点。有时,此路不通,换一个方式也能实现的。 updateS_dataset DATA = "'& $DATA&'wheres_data.data IS NULL" 这数据库怎么那么复杂呀 updateS_dataset DATA = 'xxxx' where ID=(SELECT MAX(ID) FROM S_data)
或 updateS_dataset DATA = 'xxxx' where ID=(SELECT top 1 FROM S_data order by ID DESC)
一般数据库都有个标识列, 如 ID 具体列名自行更改.
页:
[1]