|
主题: 谁知道在添加记录之前,就知道添加的这条记录ID号的最好方法
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#12004/11/2 9:02:48
谁知道在添加记录之前,就知道添加的这条记录ID号的最好方法
我很急 情况是这样的: 1. 我做了个产品展示系统, 其中图片上传部分,我想让上传的图片以产品的ID号命名. 2. 这样我在做产品更名,删除的时候,方便对图片管理,因为用时间命名的话,产品更名删除时还要读一次库中图片名,这样代码就多了(我目地是产品添加,删除,更新后,网站中的图片不会出现多余的,如果理解我的想方,有更好的方法也提一下)
-------------------------------------------------------------------------------------------------------------- query="select * from table" rs.open query,conn,3,2 rs.addnew rs("name")=??? 怎样让rs("name")=这条记录的ID rs.update --------------------------------------------------------------------------------------------------------------
现在我知道的方法是读记录集的最后一条记录 id加一
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#22004/11/2 9:30:24
在还没有增加之前id还没有产生又怎么去获得 你可以添加后再update一下
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#32004/11/2 9:30:32
不好意思问了个蠢问题
---------------------------------------------------- query="select * from table" rs.open query,conn,3,2 rs.addnew rs("name")=rs("id") rs.update --------------------------------------------------- 真没想到这么简单
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#42004/11/2 9:36:27
你是SQL SERVER吗,可以用 INSERT INTO jobs (job_desc,min_lvl,max_lvl) valueS ('Accountant',12,125) SELECT @@IDENTITY AS 'Identity'
另外如果用Guide,可以用NEWID()产生唯一的标识。
ACCESS有些麻烦,这些好象都不支持。如果急着没办法,先插入后,再用SELECT新记录再选出来,但条件一定是唯一的。如果单机用可以,多用户有麻烦,但也不太可能用ACCESS。
ACCESS办法留着再讨论。
非常大鱼
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#52004/11/2 9:55:03
accass id自动排序
我的目地: 1. 我做了个产品展示系统, 其中图片上传部分,我想让上传的图片以产品的ID号命名. 2. 这样我在做产品更名,删除的时候,方便对图片管理,因为用时间命名的话,产品更名删除时还要读一次库中图片名,这样代码就多了(我目地是产品添加,删除,更新后,网站中的图片不会出现多余的,如果理解我的想方,有更好的方法也提一下)
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#62004/11/2 10:06:15
rs("name")=rs("id") 这我倒没有想到
to 蓝鲸: 不管在Access中还是MSSQL中rs.update后就直接可以取rs("id")了
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#72004/11/2 10:08:36
你可以用其它的方法来标识图片的唯一性,如时间编号,可精确到秒,再用其它可以标识维一性的字段如产品ID号,比如产品ID号为105,可编为105-20041025-115621,因为后台管理不太可能在1秒内同一产品发二次,但前提保证系统时间必须准确。这是一种方法。也可以用其它方法来确定唯一编号,如果是多用户,可以设置用户ID。
非常大鱼
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#82004/11/2 10:21:18
to 蓝鲸 以前我是用时间编号 可是在产品更新时,如果新上传新图片,那么网站中的旧图片就会还存在,须再写一条删除旧图片的代码, 以后如果我更新产品时,只更新产品名,或只更新图片,或同时更新图片和产品名,那问题说越来越多。
向你致敬 同样的贴子在蓝色理想,没有回反到被封,真是伤心 再次向您致敬
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#92004/11/2 10:23:19
我的目地: 产品更新一段时间后,网站中图片不会出现多余
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#102004/11/2 10:36:21
如果熟悉FSO的话,这不成问题,只是后台管理稍复杂些。产品名更新与图片没影响,因为标识的是ID号,所以产品表一定要有一个ID号。如果是临时用的软件,不考虑删除也可以,用好了完了,软件功能适可而止,多化些时间在主要方面,客户会更赏心。功能在以后需要时再开发。
非常大鱼
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#112004/11/2 15:35:39
我的目地:产品更多新一段时间后,站内不会出现多余的图片
用了两天时间终于完工,大家PP,使代码更短一点
creaters()我做的建数据连接的函数 ___________________________________________________________________
<!--#include file="conn.asp" --> <!--#include file="upload.inc" --> <% ChkPost() '验证来源 dim upload ,file , filename , fileExt set upload=new upload_5xSoft
act=Trim(Request.QueryString("act")) select case act case "add" creaters(1) query="select * from product where name='"&upload.form("name")&"'" rs.open query,conn,1,1 if not rs.eof then response.write "<script language=javascript>"&vbCrLf response.write "alert(""错误:产品编号已存在。"");"& vbCrLf response.write "location.href = ""javascript:history.back()"""&vbCrLf response.write "</script>"& vbCrLf creaters(0) response.end end if case "updata" creaters(1) query="select * from product where id=" +Trim(Request.QueryString("id")) rs.open query,conn,1,1 if upload.form("name")<>rs("name") then creaters(2) query="select * from product where name='"&upload.form("name")&"'" rs.open query,conn,1,1 If Not rs.eof Then response.write "<script language=javascript>"& vbCrLf response.write "alert( ""错误:产品编号已存在。"");"& vbCrLf response.write "location.href = ""javascript:history.back()"""& vbCrLf response.write "</script>"& vbCrLf creaters(0) response.end End If End If end select
creaters(2) select case act case "add" query="select * from product where class = '"& upload.form("class") &"'" rs.open query,conn,3,2 rs.addnew num = rs.RecordCount+1 rs("num") = num rs("class") = upload.form("class") rs("name") = upload.form("name") case "updata" query="select * from product where id = " & Trim(Request.QueryString("id")) rs.open query,conn,3,2 rs("name") = upload.form("name") response.write upload.form("name") end select
for each formname in upload.file set file=upload.file(formname) if file.filesize>100 then if file.filesize>2048000 then response.write "<script language=javascript>"& vbCrLf response.write "alert( ""错误:请选择上传的文件不要超过了2M!"");"&vbCrLf response.write "location.href =""javascript:history.back();"" "& vbCrLf response.write "</script>"& vbCrLf response.end end if fileExt=lcase(right(file.filename,4)) if fileEXT<>".gif" and fileEXT<>".jpg" and fileEXT<>".png" and fileEXT<>".bmp" then response.write "<script language=javascript> "& vbCrLf response.write "alert( ""错误:请选择类型为jpg,gif,png,bmp的上传文件!"");"& vbCrLf response.write "location.href =""javascript:history.back();"" "& vbCrLf response.write "</script>"& vbCrLf response.end end if filename="pic/"&rs("id")&fileExt file.SaveAs Server.mappath(filename) '保存文件 set file=nothing else filename = "" end if next
if filename <> "" then rs("img") = filename rs.update
response.Redirect("product.asp?class="&upload.form("class")) creaters(0) set upload=nothing %>
___________________________________________________________________
经过测验,除了下面一种情况基本上更新图片,或更新产品名后站内不会出现无用图片
-------------------------------------------------------- 更新的图片格式和上次图片格式不一样 --------------------------------------------------------
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#122004/11/2 16:02:58
creaters()怎么这么多?
非常大鱼
|
songinfo
职务:普通成员
等级:1
金币:0.0
发贴:7
|
#132004/11/2 17:31:41
creaters(1)建数据连接
creaters(2)=rs.close
creaters(0)关闭数据连接
|