|
主题: 高手请进,关于ACCESS数据库自动编号的问题,在线等。。。
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#12004/5/4 20:39:26
在ACCESS数据库中,有一个表,内有一个自动编号的字段。 用ASP对该数据库进行增加、删除记录时,发生如下问题: 假设现在数据库中有10条记录,第10条记录自动编号为010,删除第10条记录,再新增一条记录,可是发生问题了,新增加的记录的编号为011,而不是010!也就是说经过删除记录后,再新添加记录时,自动编号与记录条数对不上了。怎么处理呢?
还有一个问题:在ASP中,能否读取某个字段的数据类型?(假设有一文本字段,字段长度为10,那么怎样限制用户添加记录时字段的长度不超过10呢)?
新手问题,请勿见笑,还请多多帮助!
|
janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#22004/5/5 10:01:23
1、这就是自动编号的特性,除非你不用自动编号
2、rs("somefield")=Left(strInput,10)
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#32004/5/5 11:19:38
是啊,我查找了不少网上资源,也没有发现合适的方法,只有不用自动编号了。
janlay,谢谢您,不过,第2个问题并未完全解决呀。也就是说,如果事先不知道字段长度,或者字段长度变更了,能否通过ASP动态的读取出文本字段的长度呢?
|
janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#42004/5/5 11:52:14
嗯,刚才没看清楚 跟你说一下 rs 的对象模型(你可以用对象浏览器查找) recordset 对象有个缺省的 fields 属性,它包含所有字段(field)的集合; 而 field 对象有以下几个你感兴趣的属性: Type: 类型(返回枚举类型,具体值可从对象浏览器查找得到) DefinedSize: 已定义宽度(返回长整型) 这是一个例子: If rs.fields(0).Type=adVarChar Then '或 200
'处理字段类型为 varchar 时的情况
Response.Write rs.fields(0).DefinedSize
End If 由于 fields 是 recordset 的缺省属性,上面代码也可以写作: If rs(0).Type=adVarChar Then '或 200
'处理字段类型为 varchar 时的情况
Response.Write rs(0).DefinedSize
End If
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#52004/5/19 1:17:32
太感谢了。
|
nigelttk
职务:普通成员
等级:1
金币:0.0
发贴:1
|
#62004/5/20 15:43:53
还有一个最变态的方法。。。就是删掉你自动编号的那一列。。然后重新建立一个ID为自动编号。。。顺序会依照现在。。依次自动序号。。。。
|
红卫兵
职务:普通成员
等级:1
金币:0.0
发贴:113
|
#72004/5/21 10:32:33
第二个问题还可以用脚本语言解决: <script language="javascript"> function check_length() {if (document.form.tname.text.length>10) {alert "输入字符太多!";reture false;} } </script>
然后在提交的时候来个:onsubmit="return check_length()"就可以了, 这种方法应当更适用! 大概是这个样子,不能肯定具体语言书写正确!
|
浮尘
职务:普通成员
等级:3
金币:7.0
发贴:1258
|
#82004/5/22 17:01:44
感谢名位
|
janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#92004/5/22 19:01:53
如果要编写安全的商业程序,不要依赖客户端验证。 原因很简单:你无法完全控制客户端的浏览器——这和 Win32 程序不同,用户可以轻易禁止JS运行来绕过验证部分。
|