这样的错误:Error: 2809, Severity: 18, State: 1是什么回事??

ghosthjt 2004-01-09 01:32:05
请问在哪些情况下会发生这样的错误。查了一下错误提示,是这样的:

%1! ''%2!'' 的请求失败,因为 ''%4!'' 是 %6! 对象。

请高手指教.
...全文
208 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghosthjt 2004-01-12
  • 打赏
  • 举报
回复
up
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
虽然现在我的问题解决了,但是我是有点有明白,为什么一定要用这样的形式才可以:

crs.open"select * from chkattend_extra",glbCnn, adOpenKeyset,这里的参数随便
crs.addnew
.....
crs.update 才不会出错

以前是不用这样的,谁能说个为什么吗?分不够再加!!
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
本来是adLockOptimistic,不行之后我才改成adLockBatchOptimistic的,我现在是在想,是不是数据库配置方面的问题呢??还是选用的provider不对?不知道你有何高见??先在此谢过
zjcxc 元老 2004-01-09
  • 打赏
  • 举报
回复
改一下呢?
----------------------------------------------------------------
原贴内容:
谢谢你,我还是想请教一下:
http://expert.csdn.net/Expert/topic/2649/2649240.xml?temp=.1962549
Dim crs As New ADODB.Recordset

crs.Open "chkattend_extra", glbCnn, adOpenKeyset, adLockOptimistic '这样呢


crs.AddNew
crs!身份证号 = Pid '表示身份证号
crs!加班日期 = txtExtraDate
crs!recordid = GetRecordID
crs.Update
没有记录进行添加成功,没有出错提示.chkattend_extra表是一个最简单的表,没有关联,没有触发器,有主键。
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
也没有,可以说它是一个很简单的表,它很独立。
具体一点的代码:
Dim crs As New ADODB.Recordset
If Not CheckYear(txtExtraDate) Then Exit Sub
If Not IsNumeric(txtExtraTime) Then Exit Sub

crs.Open "chkattend_extra", glbCnn, adOpenKeyset, adLockBatchOptimistic
crs.AddNew
crs!身份证号 = Pid '表示身份证号
If cmbExtraType.Text = "国定假日" Then
crs!加班时数= CInt(txtExtraTime) * 3
Else
crs!加班时数= CInt(txtExtraTime)
End If
crs!剩余时数 = crs!加班时数
crs!加班日期 = txtExtraDate
crs!recordid = GetRecordID
crs.Update
代码完成后,没有记录进行添加成功,没有出错提示.chkattend_extra表是一个最简单的表,没有关联,没有触发器,有主键。
zjcxc 元老 2004-01-09
  • 打赏
  • 举报
回复
那是否级联更新引起的呢?
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
to zjcxc(邹建) .你的方法我也试过的,但是也没有用,我才发贴子问的。

to sunrisehy2003(黎明) 所谓具体问题,就是,以前用rs.addnew 是可以的,但后来对数据库进行了一些修改之后,rs.addnew 没有作用了。(不存在触发器问题,表中没有触发器)查看事件查看器,发现有这样的错误:
Error: 2809, Severity: 18, State: 1
sunrisehy2003 2004-01-09
  • 打赏
  • 举报
回复
你把具體問題複製過來就可以了,何必在這里讓大家猜迷
zjcxc 元老 2004-01-09
  • 打赏
  • 举报
回复
如果 Glbcnn 是ado.connection对象,就直接用:
Glbcnn.execute "INSERT INTO JobWanter_Basic(身份证号, 性别, 姓名) VALUES ('11111111111111111', '女', 'asdd')"



如果 Glbcnn 是连接字符串,就用:
dim db as adodb.connection
set db=new adodb.connection
db.open Glbcnn
db.execute "INSERT INTO JobWanter_Basic(身份证号, 性别, 姓名) VALUES ('11111111111111111', '女', 'asdd')"
db.close
set db=nothing
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
高手帮忙呀,现在为了这个问题一直很郁闷呀。
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
但我直接在企业管理器中添加是可以的。不知道怎么回事。
ghosthjt 2004-01-09
  • 打赏
  • 举报
回复
谢谢大力和邹建。

我是在ado中使用rs.addnew rs.update,最简单的插入一条记录。
具体内容我在这个贴子中:
http://expert.csdn.net/Expert/topic/2634/2634870.xml?temp=.1538355

发现没有记录添加成功,但是VB中也没有提示出错,但我用事件查看器发现这样的错误.但是不知道什么原因
pengdali 2004-01-09
  • 打赏
  • 举报
回复
没打[]是170错误。

这个要到具体出现才知道。我没遇见过。
zjcxc 元老 2004-01-09
  • 打赏
  • 举报
回复
楼主贴出你的完整语句.
zjcxc 元老 2004-01-09
  • 打赏
  • 举报
回复
引用的时候,要用[]括起来:

[%4] [%6]

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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