从SQL到Access的语句转换

chenybin 2003-03-24 11:38:39
SET NOCOUNT ON; INSERT INTO tblpop3Mail(UserID,BodyText,CC,Encoding,FromAddress,FromName,Priority,DateTimes,Subject,Size) VALUES(104,'
','none','0','','','','Sun, 21 Jul 2002 14:49:9 -0800','学习计划表','34345');Select @@IDENTITY AS NewID;

这个SQL本来是用SQL Server作的,但是我现在想把代码改成是ACCESS的,请问怎么作,代码如下:
sql="SET NOCOUNT ON;"
sql=sql&" INSERT INTO pop3Mail(UserID,BodyText,CC,Encoding,FromAddress,FromName,Priority,DateTimes,Subject,Size) VALUES(" & UserID & _
",'"& strBodyText & _
"','"& strCC & _
"','" & strEncoding & _
"','"& strFromAddress & _
"','"& strFromName & _
"','"& strPriority & _
"','"& strDate & _
"','"& strSubject & _
"','"& strSize & _
"');"
sql=sql & "Select @@IDENTITY AS NewID;"
Set RsMail=oConn.execute (sql)
NewID = RsMail("NewID")

整个语句可以执行,但是我不知道最后那个NewID这个句字在Access里面怎么实现,因为在上面的代码里面需要用到这个NewID,我看过Sql Server的帮助,没有怎么弄明白,而且在Access好像不能在一个RS里面执行两个SQL语句,不知道是不是这样,

闲人勿扰,谢谢
...全文
99 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenybin 2003-03-31
  • 打赏
  • 举报
回复
谢谢 czp98069806(天地归一)

czp98069806 2003-03-28
  • 打赏
  • 举报
回复
还有看你的字段设置的是否可以为空
czp98069806 2003-03-28
  • 打赏
  • 举报
回复
不要写那么复杂就直接
sql="insert into table(id) values('"&request("id")&"')"
conn.execute(sql)
就是我最喜欢的写法
chenybin 2003-03-28
  • 打赏
  • 举报
回复
csdn别让我失望阿
chenybin 2003-03-26
  • 打赏
  • 举报
回复
其实这是一个函数

而我要返回的就是那个NewID

所以我想是应该有两个SQL算了
我就执行两次吧,另外如果我用InterDev的时候,一般如果我的自动完成功能没有用了,应该是我的代码错了,上面的代码里面我的oConn就不能列出他的方法和属性了,我这个本来就了个被别的页面Include的,数据库的连接是那个页面Include的conn.asp的,所以我现在还不知道错误出在哪里,不知道懂我的意思了没有
苍狼传说 2003-03-26
  • 打赏
  • 举报
回复
别忘了rs.update
苍狼传说 2003-03-26
  • 打赏
  • 举报
回复
有个办法,让NewId 做面自动编号;
然后:
rs.addnew
Newid=rs("NewId")
rs("")=XXX
...
是不是这样的?
chenybin 2003-03-25
  • 打赏
  • 举报
回复
这位兄台,你还是写个代码吧,我是初学者,谢谢!
hubinasm 2003-03-25
  • 打赏
  • 举报
回复
那你用RECORDSET进行插入!插入的时候锁定即可!
chenybin 2003-03-24
  • 打赏
  • 举报
回复
继续
hubinasm 2003-03-24
  • 打赏
  • 举报
回复
在ACCESS里,你只能再用一个选择语句!
chenybin 2003-03-24
  • 打赏
  • 举报
回复
@@IDENTITY
返回最后插入的标识值。

语法
@@IDENTITY

返回类型
numeric

注释
在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。

在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。

@@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。

IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。有关更多信息,请参见 IDENT_CURRENT。

示例
下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'


请参见

CREATE TABLE

IDENT_CURRENT

INSERT

SCOPE_IDENTITY

SELECT

系统函数

28,390

社区成员

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

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