句子解析!急!

xxwfantasy 2003-08-21 09:28:58
If InStr("INSERT,DELETE,UPDATE", _这段话有些不明白 为什么执行sql语句用两
UCase$(stokens(0))) Then 种方式? 当我只用CONN.EXECUTE时 用
conn.Execute sql AddNew时 总是出现 "如果对象已关闭,不能执
' MsgString = stokens(0) & _ 行" 但我这段全用时 则无事
" query successful"
Else 是否和这ADDNEW有关?而INSERT,DELETE
Set rs = New ADODB.Recordset UPDATE 与它不同? 还有UCase$什么意
rs.Open Trim$(sql), conn, _ 思?恳请赐教!!!
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rs
'MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
...全文
69 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingming81 2003-08-22
  • 打赏
  • 举报
回复
这段代码还是不明白吗?

If InStr("INSERT,DELETE,UPDATE",
UCase$(stokens(0))) Then
'如果字符串"INSERT,DELETE,UPDATE"中,含有SQL语句按空格分拆出的字符串头一个值即stokens(0)。实际上即是SQL语句如果以INSERT或DELETE或UPDATE开头(插入、删除或更新)
conn.Execute sql
' 此时执行SQL语的插入、删除或更新,这时没有返回else后的记录集,不能执行addnew
' MsgString = stokens(0) & _
" query successful"
Else
'是否和这ADDNEW有关?而INSERT,DELETE?如上解释
UPDATE 与它不同? 还有UCase$什么意思?update是SQL语句在更新数据库。UCase$是把所有小写字母转换成大写字母。
Set rs = New ADODB.Recordset
rs.Open Trim$(sql), conn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rs
'此时得到记录集
'MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
qingming81 2003-08-22
  • 打赏
  • 举报
回复
这段代码还是不明白吗?

If InStr("INSERT,DELETE,UPDATE",
UCase$(stokens(0))) Then
'如果字符串"INSERT,DELETE,UPDATE"中,含有SQL语句按空格分拆出的字符串头一个值即stokens(0)。实际上即是SQL语句如果以INSERT或DELETE或UPDATE开头(插入、删除或更新)
conn.Execute sql
' 此时执行SQL语的插入、删除或更新,这时没有返回else后的记录集,不能执行addnew
' MsgString = stokens(0) & _
" query successful"
Else
'是否和这ADDNEW有关?而INSERT,DELETE?如上解释
UPDATE 与它不同? 还有UCase$什么意思?update是SQL语句在更新数据库。UCase$是把所有小写字母转换成大写字母。
Set rs = New ADODB.Recordset
rs.Open Trim$(sql), conn, _
adOpenKeyset, _
adLockOptimistic
'rst.MoveLast 'get RecordCount
Set ExecuteSQL = rs
'此时得到记录集
'MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
lxcc 2003-08-22
  • 打赏
  • 举报
回复
执行INSERT,UPDATE,DELETE这些数据库操作的时候,需要用ADODB.Connection来执行,因为这些语句不会返回记录集,
而SELECT需要返回一个记录集,所以要用ADODB.recordset来返回记录集,

InStr("INSERT,DELETE,UPDATE", ...
这个的作用就是检测是什么操作,来决定用什么方式

当我只用CONN.EXECUTE时 用 AddNew时 总是出现 "如果对象已关闭,不能执 ...
是因为你没有可操作的记录集,也就是没有相对应的表来进行Addnew
lxcc 2003-08-22
  • 打赏
  • 举报
回复
执行INSERT,UPDATE,DELETE这些数据库操作的时候,需要用ADODB.Connection来执行,因为这些语句不会返回记录集,
而SELECT需要返回一个记录集,所以要用ADODB.recordset来返回记录集,

InStr("INSERT,DELETE,UPDATE", ...
这个的作用就是检测是什么操作,来决定用什么方式

当我只用CONN.EXECUTE时 用 AddNew时 总是出现 "如果对象已关闭,不能执 ...
是因为你没有可操作的记录集,也就是没有相对应的表来进行Addnew
winyhuang 2003-08-22
  • 打赏
  • 举报
回复
但我这段全用时 则无事
是什么意思?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧