CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

鸡毛信!!!!!!!!!!!!!!!

楼主linj(豆豆)2001-05-29 09:20:00 在 Web 开发 / ASP 提问

有如下程序:  
  d=right("00"   &   cstr(day(now)),2)  
  m=right("00"   &   cstr(month(now)),2)  
  y=right(cstr(year(now)),1)  
  set   fs=server.createobject("scripting.fileSystemObject")  
  file=server.mappath("num.txt")  
  set   txt=fs.opentextfile(file,1,true)  
  if   not   txt.atendofstream   then  
  llj=clng(txt.readline)  
  end   if  
  if   cint(d)<>cint(llj)   then  
  application("bianhao")=1  
  llj=d  
  txt.close  
  set   txt=fs.createtextfile(file,true)                                           出错行!!!!!!  
  txt.writeline   llj  
  else  
  application("bianhao")=application("bianhao")+1  
  end   if  
  txt.close  
  if   application("bianhao")<10   then  
  ff=1  
  end   if  
  if   application("bianhao")>=10   and   application("bianhao")<100   then  
  ff=2  
  end   if  
  select   case   ff  
  case   1  
  application("num")=y   &   m   &   d   &"00"   &   application("bianhao")  
  case   2  
  application("num")=y   &   m   &   d   &"0"   &   application("bianhao")  
  case   else  
  application("num")=y   &   m   &   d   &   application("bianhao")  
  end   select  
  是为了生成自动编号的,在本机上调试正常。  
  但放到服务器上则提示上行出错,即不能往文本文件里写入,请各位大哥帮帮忙!  
  昨天有人告诉我是其它用户没有写的权限,  
  但是asp网页上的记数器都要往文本文件写入,  
  难道说每个访问的人都有写入的权限????  
  不懂真的搞不懂!!!  
  请大虾们指点!!!!!!!!!!  
  问题点数:20、回复次数:33Top

1 楼linj(豆豆)回复于 2001-05-29 09:42:00 得分 0

请帮帮忙!Top

2 楼lsmodel(小笨猪!~)回复于 2001-05-29 09:54:00 得分 0

确实有可能是:用户没有写的权限,因为服务器对权限限制的比较严格,例如如果是NTFS格式的分区很有可能对目录的访问权限只允许网站管理员,对everyone没有写权限。没有仔细看你的代码,如果你说在本机调试通过说明代码没有问题,则应从服务器环境上找问题。  
  另外建议你用数据库统计访问量,功能更强大,而且一般NT服务器都支持ACCESS。Top

3 楼linj(豆豆)回复于 2001-05-29 10:08:00 得分 0

不是,这是我们老板要我稿的企业内部的工作流程程式以实现办公自动化!  
  具体是在前台输入客户们的要求。  
  老板要求在前台输入活时则自动生成编号。  
  今天是2001-5-29,则编号从010529001开始,  
  到明天,则又变为010530开始  
  所以我编了如上程式,  
  我把每天的日期写入文本文件中,  
  但现在则出现上述情况!  
  我以本机作为服务器时也可以实现的,  
  但真正移植到服务器上则出现上述情况。  
  真是头大!  
  Top

4 楼linj(豆豆)回复于 2001-05-29 10:09:00 得分 0

更正:  
  到明天,则又从010530001开始Top

5 楼linj(豆豆)回复于 2001-05-29 10:11:00 得分 0

在服务器上本机调试时也出现上述情况!Top

6 楼linj(豆豆)回复于 2001-05-29 10:27:00 得分 0

高手们,请帮帮忙看看鸡毛信,帮我出出主意,我都快要发疯了!!!Top

7 楼siyu(丝羽)回复于 2001-05-29 10:58:00 得分 0

检查一下你服务器上的文件格式,看看是不是与你本机的一致。不过我同意lsmodel的建议,用access数据库代替文本文件存储日期。Top

8 楼lsmodel(小笨猪!~)回复于 2001-05-29 11:14:00 得分 0

你的问题我也遇到过,我的意见直接在数据库中采用自动编号。在加一个日期字段,则编号等于两个字段合起来,这样做还可以避免出现重复编号。我极力不建议用application()。Top

9 楼linj(豆豆)回复于 2001-05-29 11:21:00 得分 0

我用的是sql   server  
  不知在数据库中如何实现,  
  能具体说说吗?  
  当初我就是不知怎样实现而退而其次选用application的!Top

10 楼lsmodel(小笨猪!~)回复于 2001-05-29 11:39:00 得分 0

当然可以  
  CREATE   TABLE   [dbo].[TABLE1]   (  
  [ID]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,      
  [REDATE]   [datetime]   NOT   NULL   ,  
  [F1]   [char]   (10)   NULL   ,  
  [F2]   [char]   (10)   NULL   ,  
  [F3]   [char]   (10)   NULL    
  )   ON   [PRIMARY]  
  GO  
   
   
  先建一个表,包括ID和REDATE两个字段,还有其他需要前台输入客户们的要求填写的内容字段(F1、F2、F3....)就行了。  
  ID号是自动加1的,编号可以用ID和REDATE(时间)组合得出,保证不会重复,而且查询效率高。也可以加个编号字段直接存放编号。还有什么不明白?Top

11 楼linj(豆豆)回复于 2001-05-29 11:54:00 得分 0

不行的。  
  问题是日期一变id字段值又要清零,  
  怎么实现?Top

12 楼linj(豆豆)回复于 2001-05-29 12:25:00 得分 0

to   lsmodel  
  你还在吗?Top

13 楼lsmodel(小笨猪!~)回复于 2001-05-29 12:29:00 得分 0

暂时可以用SQL语句的COUNT得出某日以前的记录数,用ID-这个数+1再和日期合,即可完成你的要求,不过效率太低,我在试别的算法,等我一下。Top

14 楼linj(豆豆)回复于 2001-05-29 12:40:00 得分 0

主要的问题是数据库中id字段要实现每当日期一变,它即从1开始。  
  如此循环。  
  我想的头都大了,还是不知怎样可以实现。  
  唉,还是太笨了!  
  也就是前天是2001-5-27,  
  共有个10客户。    
  则编号则应为010527001~010527010  
  但今天有个8客户  
  则编号则应为010529001~010529008  
   
  Top

15 楼linj(豆豆)回复于 2001-05-29 12:50:00 得分 0

会不会服务器本身太破!  
  我们老板奇扣,     4000元配了一台服务器!  
  唉。。。。。。Top

16 楼linj(豆豆)回复于 2001-05-29 13:07:00 得分 0

to   lsmodel  
  嗨,你还没想出吗?  
  Top

17 楼lsmodel(小笨猪!~)回复于 2001-05-29 13:27:00 得分 0

给你段代码,没有测试,请参考思路,我还在想更好的,不过一会要开会了,有意请留下联系办法交个朋友。  
   
   
  strdate=   enchar(year(date),4)   &   enchar(month(date),2)   &   enchar(day(date),2)    
  '得出20010529  
  bianhao=strdate&getid("table1","id",4,"redate="date())  
  '得出20010529XXXX  
   
   
  '补位函数。eg:enchar(23,5)="00023"  
  function   enchar(inum,ilength)  
  enchar=inum  
  dim   icount  
  for   icount=1   to   ilength  
  enchar="0"   &   enchar  
  next  
  enchar=right(enchar,ilength)  
  end   function  
   
   
  '返回自动编码函数。  
  'stable为表名,sidcol为关键字,ilength为编码长度,sfilter为过滤条件。  
  'sidcol必须是数值格式。  
  function   getid(stable,sidcol,ilength,sfilter)  
  dim   conn  
  set   conn=Server.CreateObject("ADODB.Connection")  
  conn.open   '你的数据库连接  
  dim   sql,rs,tmpid  
  sql="select   count("   &   sidcol   &   ")   from   "   &   stable   &   "   where   ("   &   sfilter   &   ")"  
  '===Response.Write   sql   &   "<br>"  
  set   rs=conn.Execute(sql)  
  if   isnumeric(rs(0))   then  
  tmpid=rs(0)  
  else  
  tmpid=0  
  end   if  
  dim   icount,ismax  
  ismax=true  
  for   icount=1   to   ilength  
  if   mid(tmpid,icount,1)<>"9"   then   ismax=false  
  next  
  if   ismax   then    
  getid=getrandom(stable,sidcol,ilength,sfilter)  
  else  
  tmpid=tmpid+1  
  getid=enchar(tmpid,ilength)  
  end   if  
  end   functionTop

18 楼lsmodel(小笨猪!~)回复于 2001-05-29 13:30:00 得分 0

上面代码字段用的是我举例的数据表。ID和REDATE。Top

19 楼linj(豆豆)回复于 2001-05-29 13:33:00 得分 0

我的伊妹儿:  
  linjliu@163.net  
  你的?  
  非常感谢!Top

20 楼linj(豆豆)回复于 2001-05-29 13:38:00 得分 0

qq:64091858  
  不过我很少上线!  
  公司不许!Top

21 楼lsmodel(小笨猪!~)回复于 2001-05-29 13:39:00 得分 0

给你发信了。Top

22 楼linj(豆豆)回复于 2001-05-29 13:42:00 得分 0

谢谢!Top

23 楼linj(豆豆)回复于 2001-05-29 13:57:00 得分 0

你还在吗?  
  你的程序我看不大懂!Top

24 楼lsmodel(小笨猪!~)回复于 2001-05-29 14:09:00 得分 10

???我在,那里不明白,快,2:30我要走。Top

25 楼linj(豆豆)回复于 2001-05-29 14:16:00 得分 0

我还是先好好看看,你忙你的吧!开完会给我打个召呼,我再问你!Top

26 楼linj(豆豆)回复于 2001-05-29 14:19:00 得分 0

说实在的我还是搞不懂为什么放在服务器上就不行了呢?  
  现在这个程序我们已经在用了。  
  但就是每天晚上一到0:00   点就不能用!  
  每天我一早来了把文本文件再一改。  
  唉。。。。。。Top

27 楼zskllj(我靠,I服了YOU)回复于 2001-05-29 14:37:00 得分 10

strdate=   enchar(year(date),4)   &   enchar(month(date),2)   &   enchar(day(date),2)    
  '得出20010529  
  bianhao=strdate&getid("table1","id",4,"redate="date())  
  '得出20010529XXXX  
   
   
  '补位函数。eg:enchar(23,5)="00023"   //应该是enchar(23,3)="00023";  
  function   enchar(inum,ilength)             //enchar函数,第一个参数为前边需要加零的字符串,第二个为前边加零的个数!  
          enchar=inum               //第一个参数的值给enchar  
          dim   icount       //定义变量icount  
          for   icount=1   to   ilength       //循环第二个参数的值次  
                  enchar="0"   &   enchar       //每次循环参数一前加个“0”  
          next  
          enchar=right(enchar,ilength) //从右边区ilenght位  
  end   function  
   
   
  '返回自动编码函数。  
  'stable为表名,sidcol为关键字   //必须是数值格式字段名  
  'ilength为编码长度,sfilter为过滤条件。  
   
  function   getid(stable,sidcol,ilength,sfilter)  
          dim   conn  
          set   conn=Server.CreateObject("ADODB.Connection")  
          conn.open   '你的数据库连接  
          dim   sql,rs,tmpid  
          sql="select   count("   &   sidcol   &   ")   from   "   &   stable   &   "   where   ("   &   sfilter   &   ")"  
          '===Response.Write   sql   &   "<br>"  
          set   rs=conn.Execute(sql)  
          if   isnumeric(rs(0))   then  
                  tmpid=rs(0) //变量付值  
          else  
                  tmpid=0  
          end   if  
          dim   icount,ismax  
          ismax=true  
          for   icount=1   to   ilength  
                  if   mid(tmpid,icount,1)<>"9"   then   ismax=false //检查每一位是不是9  
          next  
          if   ismax   then   //如果每一位都是9  
                  getid=getrandom(stable,sidcol,ilength,sfilter) //函数未定义!  
          else //如果有一位不是9  
                  tmpid=tmpid+1       //  
                  getid=enchar(tmpid,ilength)  
          end   if  
  end   function   Top

28 楼linj(豆豆)回复于 2001-05-29 15:23:00 得分 0

好累!!1Top

29 楼rejobs(发呆小子)回复于 2001-05-30 08:47:00 得分 0

linj(豆豆)  
  我有一个好主意:  
  1。统计当天数据库内的记录数  
  2.id=int(replace(date(),"-",""))&当统计当天的记录数+1  
  3.写人数据库,即可!!  
  祝:好运!!  
   
  Top

30 楼linj(豆豆)回复于 2001-05-30 09:53:00 得分 0

i   want   to   jumping!Top

31 楼linj(豆豆)回复于 2001-05-30 13:43:00 得分 0

Top

32 楼linj(豆豆)回复于 2001-05-30 13:43:00 得分 0

Top

33 楼linj(豆豆)回复于 2001-06-02 12:40:00 得分 0

Top

相关问题

  • 鸡毛信!!!!!!!!!!
  • 鸡毛信!!!!!!!!!!!!!!
  • 鸡毛信!!!!!!!
  • ADO_鸡毛信!!
  • 鸡毛信2
  • 鸡毛信!!!!!!!!!!!!急急急
  • 鸡毛信一封(分100)
  • 一个关于InitiateSystemShutdown的鸡毛信!
  • 求救!(鸡毛信+高分相送)
  • 关于注册表,鸡毛信

关键词

  • 函数
  • 数据库
  • date
  • application
  • sql
  • server
  • enchar
  • tmpid
  • ilength
  • sidcol

得分解答快速导航

  • 帖主:linj
  • lsmodel
  • zskllj

相关链接

  • Web开发类图书

广告也精彩

反馈

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