很奇怪的问题,关于access库与ms sql库的问题。

kilter 2004-01-23 12:02:45
在代码

rs.open "select * from EMatch where MatchSerial='"&Serial&"'",cn,1,3
if rs.eof then
rs.addnew
rs("MatchSerial")=Serial
rs("MatchClass")=MatchName(1)
rs("OptTime")=now
rs("matchMemo")=request.form("matchMemo")
rs("Memos")=request.form("memos")
rs.update
MatchSid=rs("id")
rs.close

在access库执行正常,信息写入了ematch表中,但是用sql 的库的时候,信息是写入了,
但是matchsid=rs("id")这条命令没起作用,用
matchsid=rs("id")
response.write matchsdi
response.end
调试没信息显示,但是用access库却显示matchsid的值。

觉得很奇怪,access中id是自动编号,转到sql库中设置的是int类型,然后设置的自动增量为1;个人认为是数据类型的问题,但是感到无法解决,请求帮助?
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kilter 2004-01-25
  • 打赏
  • 举报
回复
谢谢各位的帮助,最后的一位兄弟方法过于复杂,其实多建立个指针来得到最大的id,然后+1赋予新的id就解决问题了.
clanboo 2004-01-25
  • 打赏
  • 举报
回复
需要在企业管理器中设置该表ID为种子ID 自增型
或者你自己写ID嘛 我从来不用种子ID 因为……
写个函数搜索当前该表ID最大值 然后你+1就OK了嘛
代码如下
function GetID(strSQL)
set tmpSql1=server.createobject("ADODB.recordset")
tmpSql1.open strSQL,conn,1,1
if tmpSql1(0)<>"" then
GetID=tmpSql1(0)
else
GetID=1
end if
tmpSql1.close
set tmpSql1=nothing
end function

调用方法不用俺说了吧?呵呵 快给分啊,我是穷人。
kilter 2004-01-23
  • 打赏
  • 举报
回复
难道是access库与sql 库的指针的问题?
当rs.update后,access指针没动,但是sql指向下空数据?
moshco 2004-01-23
  • 打赏
  • 举报
回复
这是因为当你加入完一条新的记录后(update后),记录指针指向了下一条空的记录,所以你的rs("id")是空值!

如果你不update,你的rs("id")有不会产生,所以你想用你的方法在加入记录后马上得到rs("id")是不可能的了!
你必须的先update,然后找到你刚才加如的记录,然后取得它的rs("id").明白?

不明白上QQ:7740094我!
kilter 2004-01-23
  • 打赏
  • 举报
回复
我知道,所以在ms sql中设置为int类型,然后设置的标识为自动增加1

现在的问题是在写入信息到ematch表的时候,id是自动增加,其他的信息写入后,
当把rs("id")的信息赋予个值的时候在access是进行了,但是在sql中确没进行,
怪了?
Jaron 2004-01-23
  • 打赏
  • 举报
回复
直接从access导入到sql,是不会将id字段改为自增型的,需要手工修改。
kilter 2004-01-23
  • 打赏
  • 举报
回复
恩,还是不明白起指针到底杂了
jim.ma 2004-01-23
  • 打赏
  • 举报
回复
对你这问题我也遇到过 好象在同一个 RS 中没办法解决吧 .

要不在事务中处理 增加一个 查询 的 RS "SELECT TOP 1 ID FROM EMATCH ORDER BY ID DESC"

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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