数据库时间更新问题
求助,数据库时间更新问题,先粘代码:$now = _Now()
$Mssql_Conn = ObjCreate("ADODB.Connection")
$Mssql_Conn.open("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=(Local)\GSQL;")
$Msql_RS = ObjCreate("ADODB.Recordset")
$Msql_RS.open("SELECT * FROM hy WHERE LoTime < '" & $now & "'", $Mssql_Conn, 1, 1)
While (Not $Msql_RS.eof And Not $Msql_RS.bof)
$temp=$temp+1
$Msql_RS.Execute("Update HY set LoTime=GETDATE()+30 WHERE LoTime < '" & $now & "'")
$Msql_RS.movenext
WEnd
MsgBox(0,"","本次延期"&$temp&"会员")
$Msql_RS.close
查询正常,可以用MSGBOX显示出查到的数据内容,但是更新语句调用时出错,不知道什么原因,特来向坛子里的大大求助,在Q群里问到一位高手说让我加错误回显,但本人实在不知道怎么加错误回显,所以又回来这里求助了! 000000000000000000000 $Msql_RS 这个好像是游标吧,游标能这样更新吗? 没有.Execute这样属性吧 那更新用什么代码更合适呢? $now = _Now()
$Mssql_Conn = ObjCreate("ADODB.Connection")
$Mssql_Conn.open("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=(Local)\GSQL;")
$Msql_RS = ObjCreate("ADODB.Recordset")
$Msql_RS.open("SELECT * FROM hy WHERE LoTime < '" & $now & "'", $Mssql_Conn, 1, 1)
While (Not $Msql_RS.eof And Not $Msql_RS.bof)
$temp01=$Msql_RS.Fields(0).value
$temp=$temp+1
$Msql_RS.Execute("Update HY set LoTime=GETDATE()+30 WHERE kh = '"&$temp01&"'")
$Msql_RS.movenext
WEnd
MsgBox(0,"","本次延期"&$temp&"会员")
$Msql_RS.close
这样也是报错误,求各位大神指点指点! 回复 5# 6615840
1.你的 UPDATE 語法在MYSQL 下可以執行嗎??
2. GETDATE()+30 的意思是 加一個月嗎??我不確定可以這樣寫ㄟ 回复 5# 6615840
1.你的 UPDATE 語法在MYSQL 下可以執行嗎??
2. GETDATE()+30 的意思是 加一個月嗎??我不確定可以這樣寫ㄟ 回复 7# kk_lee69
1.是在SQL下执行的。
2.GETDATE()+30是可以在企业管理器里运行的,可以正常运行这条语句的!我这里只是引用了在管理器里面能正常运行的代码. 本帖最后由 xayle 于 2013-10-5 03:44 编辑
这个看看可不可以, 试试吧
$now = _Now()
$Mssql_Conn = ObjCreate("ADODB.Connection")
$Mssql_Conn.open("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=(Local)\GSQL;")
$Mssql_Conn.CursorLocation = 3
$query = $Mssql_Conn.Execute("SELECT * FROM hy WHERE LoTime < '" & $now & "'")
If Not $query.eof And Not $query.bof Then
$quer2 = $Mssql_Conn.Execute("Update HY set LoTime=GETDATE()+30 WHERE LoTime < '" & $now & "'")
$tmp = $quer2.RecordCount
MsgBox(0,"","本次延期"&$tmp&"会员")
EndIf
$Mssql_Conn.close
$now = _Now()
$Mssql_Conn = ObjCreate("ADODB.Connection")
$Mssql_Conn.open("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=(Local)\GSQL;")
$query = $Mssql_Conn.Execute("SELECT * FROM hy WHERE LoTime < '" & $now & "'")
If Not $query.eof And Not $query.bof Then
$quer2 = $Mssql_Conn.Execute("Update HY set LoTime=GETDATE()+30 WHERE LoTime < '" & $now & "'")
$tmp = $query.GetRows()
MsgBox(0,"","本次延期"&UBound($tmp)&"会员")
EndIf
$Mssql_Conn.close
RE: 数据库时间更新问题[已解决]
回复 9# xayle非常感谢,确实可以实现我的需求!
页:
[1]