CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

在数据库中存储文件名加入数值

楼主kocs2002(拒绝签名)2006-03-21 11:48:32 在 Web 开发 / ASP 提问

sql   server   2000数据库中有一张表,有3个字段,ID   int   标识,Title   varchar   ,Content   varchar,我想创建一个文本文件,把文件路径及名称存放在Content字段,文件命名规则为Organ加上ID值,比如一条记录中ID为3,文件名即为Organ3.txt.我写了如下代码:  
  set   rs=server.CreateObject("adodb.recordset")  
  sql="select   *   from   ""Query-Organ""   where(ID   is   null)"  
  rs.open   sql,conn,1,3  
  rs.addnew  
  rs("Title")=title  
   
   
  stringpath   =   Server.MapPath("Organ"+rs("ID")+".txt")  
  rs("Content")=stringpath  
  rs.update  
  title为变量,添加了一条记录为什么ID值还是空?存储的文件名总是Organ.txt,望高手帮帮我. 问题点数:50、回复次数:6Top

1 楼sky0120(忍者鱼)回复于 2006-03-21 12:22:06 得分 10

rs.update运行之前ID   is   null。应该先完成添加再取出刚添加记录的ID。  
   
  如下:  
                    ……  
  RS.UPDATE  
  Set   Rs=conn.execute("select   @@identity   as   AID")  
  DocID=Rs("AID")  
                    stringpath   =   Server.MapPath("Organ"+DocID+".txt")Top

2 楼jspadmin(阿笨狗http://www.pifoo.com域名空间专卖cn20、com50元)回复于 2006-03-21 12:44:17 得分 20

楼上正确,你的sql取出的id=null,当然("Organ"+rs("ID")+".txt")还是=Organ.txt了。  
  要再添加完后,rs.update后再取这条记录Top

3 楼kocs2002(拒绝签名)回复于 2006-03-21 16:59:10 得分 0

我在sql="select   *   from   ""Query-Organ""   where(ID   is   null)"之前写了rs.update,同样没有效果,如果我把("Organ"+rs("ID")+".txt")换成("Organ"+rs("Title")+".txt")就可以了,所以应该不是rs.update的问题Top

4 楼dy_outline(outline)回复于 2006-03-21 19:18:31 得分 20

同意二楼和三楼的看法。  
  但你的这种思路上似乎有问题:  
  首先,如果每条记录都对应一个文本文件,则没有必要再在数据库创建一列,直接取出数据库中的ID号后加上“Organ”+rs("ID")+".txt"就可以得到相应的记录了。  
  其次,正如楼上所说的,在没有进行rs.update()之前,数据库中的ID是不会增长的,你取得了记录当然是Null。  
  另外,这样的算法在大规模的应用中可能会有问题,如写道库中的记录如果每秒中有几百条或几千条先将数据库Update了,再回头去取最新的一条记录,很可能会出错。前几天在数据库板块看到过取得最新记录的相关讨论,你可以查询一下。Top

5 楼kocs2002(拒绝签名)回复于 2006-03-22 14:03:03 得分 0

不讨论我的思路,我的思路没问题,本来把数据存到数据库中,但由于后来要添加的内容比较大,超出sql   server   char类型的范围,才改为放入文本,另外我做的东西的应用比较局限,数据量也不会太大,所以这样存取完全没有问题,但是update放在前面我确实是是试过了但没有效果Top

6 楼dy_outline(outline)回复于 2006-04-09 19:18:06 得分 0

今天试验了一下,确实是会出现Update之后无法取得ID的问题,解决的方法也很简单:  
  将ID设置为主键即可。在表上点击右键,选择设计表,然后选中ID列,点击菜单中的设为主键。我用的是Sql   Server2000.Top

相关问题

  • 如何往远程数据库服务器端存储文本文件(文件名存在数据库中)--请教高手
  • 数据库还原 如何得到数据库的文件名
  • 如何对SQL SERVER数据库的文件名换名?
  • 如何更改数据库的逻辑文件名?
  • 如何更改MS-SQL数据库的逻辑文件名?
  • 随机获取文件名后,保存到数据库的文件名和传到文件夹里的文件名不同,怎么解决?
  • 如何让数据库自动导出有规律文件名的文件?
  • 菜鸟问题(有关数据库文件名称的区别和联系)
  • 根据数据库中取出的文件名,动态放映视频文件
  • 知道数据库名,怎么知道这个数据库的逻辑文件名、数据库文件的路径

关键词

  • 数据库
  • 文件名
  • sql
  • null
  • server
  • organ
  • 记录
  • rs
  • 添加
  • 取出

得分解答快速导航

  • 帖主:kocs2002
  • sky0120
  • jspadmin
  • dy_outline

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo