简单弱智的问题:关于addnew的记录集

Symanteck 2009-10-18 01:25:58
使用rs.addnew添加数据时应该怎么打开记录集呢??
网上一般都是用select * from tablexx, 这样要打开所有表中的记录,如果是表很大的话,这样会很慢,应该是没有必要的吧??请教高手!!
...全文
90 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallbuy 2009-10-18
  • 打赏
  • 举报
回复
确实我误解了,看书一般说不要SELECT *这样写,耗服务器资源,所以说下只列出需要的具体字段,呵呵。不过以前我也不知道可以不返回任何记录仅返回表结构,跟HOOKEE学了一招,有幸。不知道查询或删除有没有优化语句的方法?HOOKEE,能否多指点下
Symanteck 2009-10-18
  • 打赏
  • 举报
回复
上面的兄弟看来你没看明白我的意思。

===============================================
hookee,我说的是你的楼上的那个哥们的回复。
谢谢各位!!
smallbuy 2009-10-18
  • 打赏
  • 举报
回复
哦原来是这样,好问题我也学了一招,那再请教HOOKEE,数据量已经很大了,现在我想查询某公司一年的资料如何写好?原来是select 字段1,字段5 from [gongsi] where id='环球公司' and year(mydate)='2009',这种查询可以优化吗?另外删除的优化如何写呢?谢谢了
三楼の郎 2009-10-18
  • 打赏
  • 举报
回复
sql="select * from tablexx"
之所以会慢是因为需要查询数据库还需要把查询结果返回,如果数据量很大的话返回查询结果需要很多时间,如果是Addnew的话是不需要返回查询结果的,
sql="select * from tablexx where 0=1"
不返回任何记录仅返回表结构,所以速度会快很多。

hookee 2009-10-18
  • 打赏
  • 举报
回复
我明白你的意思,只要取一个空的记录集就可以了,id=-1也是可以的,不过这样就要查询id了,直接 WHERE false就避免查询了.

sql="select * from tablexx where 1=0"
set rs = server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
rs.AddNew
rs("xxx") = "xxx"
....
Symanteck 2009-10-18
  • 打赏
  • 举报
回复
hookee,五星高手!佩服啊佩服!!
Symanteck 2009-10-18
  • 打赏
  • 举报
回复
上面的兄弟看来你没看明白我的意思。
我要对表新添加一条记录,添加之前需要打开记录集,一般是这样的:
sql="select * from tablexx"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,3
这样rs记录集会打开表中所有的记录,如果表中已经有十万条记录了,那么这个过程会非常耗资源。
所以,除了用insert,有什么办法解决这个问题,我看到有这么写的:
sql=="select * from tablexx where id=-1"
这样对吗?
hookee 2009-10-18
  • 打赏
  • 举报
回复
select * from tablexx WHERE 1=0 即可, 只取表结构,不返回记录
Symanteck 2009-10-18
  • 打赏
  • 举报
回复
help!
smallbuy 2009-10-18
  • 打赏
  • 举报
回复
select 字段1,字段5 from table

28,406

社区成员

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

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