版权所有 2009-2016荆门泽优软件有限公司

保留所有权利

官方网站:http://www.ncmem.com/

产品首页:http://www.ncmem.com/webapp/up6.2/index.asp

在线演示:http://www.ncmem.com/products/up6.2/index.htm

产品介绍:http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html

升级日志:http://www.cnblogs.com/xproer/archive/2012/10/26/2741268.html

开发文档:ASP,PHP,JSP,ASP.NET,

资源下载:cab安装包(x86),cab安装包(x64),crx安装包,crx(nat)安装包,xpi安装包,exe安装包,开发文档,VC运行库,Discuz!X2插件下载,

示例下载(.NET):SQL2005示例,

示例下载(JSP):Sql2005示例,MySQL示例,Oracle示例,

示例下载(PHP):MySQL示例

联系信箱:1085617561@qq.com

联系QQ:1085617561

 

修复文件夹中文件数过多导致数组超界的问题

修复前错误截图:

 

 

fd_appender.cs

修改前:

 

修改后:

 

代码:

void make_ids()

{

    this.cmd = db.GetCommandStored("fd_files_add_batch");

    db.AddInt(ref cmd, "@f_count", this.m_root.files.Count + 1);

    db.AddInt(ref cmd, "@fd_count", this.m_root.folders.Count + 1);

    cmd.Connection.Open();

    var r = cmd.ExecuteReader();

    List<string> id_files = new List<string>();

    List<string> id_fds = new List<string>();

    while(r.Read())

    {

        if (r.GetBoolean(0)) id_files.Add(r.GetInt32(1).ToString());

        else id_fds.Add(r.GetInt32(1).ToString());

    }

    r.Close();

    this.f_ids = id_files.ToArray();

    this.fd_ids = id_fds.ToArray();

}

 

存储过程:

fd_files_add_batch.sql

修改前:

 

修改后:

代码:

USE [HttpUploader6]

GO

/****** 对象:  StoredProcedure [dbo].[fd_add_batch]    脚本日期: 07/28/2016 17:42:12 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

 

-- =============================================

-- Author:         zysoft

-- Create date: 2016-08-04

-- 更新 2016-09-06 使用临时表解决ID数量过多的问题。

-- Description:    批量分配文件夹ID和文件ID,提供给上传文件夹使用,在初始化时使用

-- =============================================

CREATE PROCEDURE [dbo].[fd_files_add_batch]   

      @f_count int --文件总数,要单独增加一个文件夹

     ,@fd_count int     --文件夹总数

AS

BEGIN

     -- SET NOCOUNT ON added to prevent extra result sets from

     -- interfering with SELECT statements.

     SET NOCOUNT ON;

    

     --使用临时表存储ID

     create table #tb_ids(t_file bit,t_id int)

 

    DECLARE @i int;

     set @i = 0;

 

     /*批量添加文件夹*/

     while @i < @fd_count

     begin

         insert into up6_folders(fd_pid) values(0);

         insert into #tb_ids values(0,@@IDENTITY)

         set @i = @i + 1;

     end

 

     /*批量添加文件*/

     set @i = 0;

     while @i < @f_count

     begin

         insert into up6_files(f_pid) values(0)

         insert into #tb_ids values(1,@@IDENTITY)

         set @i = @i+1

     end

    

     --清除,

     select * from #tb_ids;

END

 

修复后上传文件数量多的文件夹效果:

 

最新文章

  1. libjingle_peerconnection
  2. LLDB命令查看内存的分配历史
  3. BitMap排序
  4. c++内存分配
  5. HDU 2586 + HDU 4912 最近公共祖先
  6. 2.XML高级用法
  7. 如何透彻分析Java开发人员
  8. day22 Pythonpython 本文xml模块
  9. Vue常规后台系统,路由懒加载实现基于菜单数据并解耦
  10. 如何停止处于stopping状态的windows服务
  11. dojo Datagrid 实现数据删除功能
  12. jQuery同一标签多个相同事件 return语句 表单提交实例
  13. 调用布局View的performClick()方法
  14. 未知行数的文字在div中垂直居中
  15. mybatis3 @SelectProvider
  16. css points
  17. 第七章 使用 MyBatis API(MyBatis)
  18. 关于Android控件EditText的属性InputType的一些经验,java组合多个参数
  19. 人生的第一篇blog
  20. luoguP5105 不强制在线的动态快速排序

热门文章

  1. 13. Reorder List
  2. C++设计模式-Builder建造者模式
  3. Android Studio JNI/NDK 编程简介(一)
  4. 潜入ICU的四逆汤
  5. MVC dirname(——FILE——)
  6. perl 入门的基础
  7. Android-Service生命周期
  8. Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数
  9. jsp学习--如何定位错误和JSP和Servlet的比较
  10. Block的copy和循环引用的问题