以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在SQL窗口中测试SQL语句与命令窗口有所区别?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33470)

--  作者:瞩望星空
--  发布时间:2013/5/18 20:01:00
--  在SQL窗口中测试SQL语句与命令窗口有所区别?

问题来源:


修改外部表中某个字段时,顺便记录修改的日期
所以要把当天的日期写入这个“修改日期”

我在SQL窗口中写:

Update {ryxx} set [修改日期]= #" & Date.Now & "#  Where[RYBH] =\'103000002\'

一直提示:

日期的语法错误 在查询表达式 \'#" & Date.Now & "#\' 中。

 

后来在别人的提醒下,写上完整语句,在命令窗口中测试,却是能执行的


Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Update {ryxx} set [修改日期]= #" & Date.Now & "#  Where[RYBH] =\'103000002\'"
If cmd.ExecuteNonQuery = 1 Then \'返回1表示更改成功
    MessageBox.Show("修改成功")
End If

 上述二条语句,其核心内容是一样的,但在SQL窗口中却通不过。

是不是SQL窗口中不能还变量运行?

[此贴子已经被作者于2013-5-18 20:06:21编辑过]

--  作者:有点甜
--  发布时间:2013/5/18 21:38:00
--  

sql当然不能执行执行下面的语句:

Update {ryxx} set [修改日期]= #" & Date.Now & "#  Where[RYBH] =\'103000002\'"

 

因为这是代码,不是sql语句,代码中能执行,是因为代码执行后,合成了真正的sql语句。

 

这样你就清楚了:

 

Dim cmd As New SQLCommand
cmd.Connection Name = "数据原名称"
cmd.CommandText = "Update {ryxx} set [修改日期]= #" & Date.Now & "#  Where[RYBH] =\'103000002\'"

MessageBo.Show("合成的SQL语句:" & cmd.CommandText)
If cmd.ExecuteNonQuery = 1 Then \'返回1表示更改成功
    MessageBox.Show("修改成功")
End If


--  作者:瞩望星空
--  发布时间:2013/5/18 21:50:00
--  

恩,初学,好多问题似懂非懂。