找回密码
 加入
搜索
查看: 2274|回复: 4

[系统综合] MDB数据库 更新问题

[复制链接]
发表于 2010-10-19 13:44:48 | 显示全部楼层 |阅读模式
本帖最后由 shano 于 2010-10-19 13:48 编辑

一个库 表名S_data  2个字段  一个IP   一个DATA
程序1把IP的值写入到数据库后    程序2吧DATA添加到IP 同一行  也就是update的问题
我现在用  'update  S_data  set 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 =  'update  S_data  set DATA =   "'& $DATA&'"  '


                $conn.Execute($update)
            Return 0
         
       
        $RS.close
                $conn.close
        EndFunc
发表于 2010-10-19 15:45:56 | 显示全部楼层
建议兄弟使用UDF写,那样的话会简单一点。有时,此路不通,换一个方式也能实现的。
发表于 2010-10-19 21:13:16 | 显示全部楼层
update  S_data  set DATA =   "'& $DATA&'  where  s_data.data IS NULL"
发表于 2010-10-25 23:14:52 | 显示全部楼层
这数据库怎么那么复杂呀
发表于 2010-10-26 09:20:26 | 显示全部楼层
update  S_data  set DATA = 'xxxx' where ID=(SELECT MAX(ID) FROM S_data)
或 update  S_data  set DATA = 'xxxx' where ID=(SELECT top 1 FROM S_data order by ID DESC)

一般数据库都有个标识列, 如 ID 具体列名自行更改.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 00:24 , Processed in 0.072978 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表