MSSQL中提供了一个功能,能够分块读取Blob字段中的数据,写了一个存储过程代码如下:

CREATE PROCEDURE PRO_GET_FILE_DATA
    @PKG_ID INT,
    @VER VARCHAR(50),
    @START INT,
    @COUNT INT
AS
BEGIN
    --定义指针变量,必须为varbinary(16)
    DECLARE @ptrval varbinary(16);
    --定义指针指向
    SELECT @ptrval = TEXTPTR(FILE_DATA)
    FROM T_SYS_PKG_FILE
    WHERE PKG_ID = @PKG_ID //获取某条记录的条件
      AND FILE_VER = @VER;
    --获取数据
    IF @ptrval IS NOT NULL
        READTEXT T_SYS_PKG_FILE.FILE_DATA @ptrval @START @COUNT;
END;

这个功能最大的好处就是:可以读取Blob字段中的任意一部分数据。我主要使用在客户端执行文件升级。

1、把客户端所有业务封装到dll中,由主程序调用时,载入dll及其业务模块;

2、当业务模块版本升级时,将dll导入到数据库的Blob中,客户端主程序在载入dll之前,先进行版本检查,如果有新版本,则下载业务模块dll;

3、为展示下载进度,分块取Blob字段中的内容,就用到了上述功能;

4、将业务尽可能封装到不同dll,这样其体积要小一些,只有在调用业务模块时再载入dll,可以有效避免大量客户端同时下载同一个dll带来的问题。

5、暂适用于MSSQL,Oracle的还没有想好。

最新文章

  1. C#文件流读写文件的简单winform实现
  2. BZOJ总览
  3. jQuery 消息提示/通知插件
  4. 《Linux shell变量总结回顾》RHEL6(转)
  5. 18_高级映射:一对一查询(使用resultMap)
  6. Java知识总结--Servlet&JSP
  7. jdk jre jvm 关系
  8. 【转】c#引用类型与值类型的区别大盘点
  9. SQL Server 2005------函数
  10. 推荐几个靠谱的VPN
  11. OpenCV Python 录制视频
  12. 面试真题--------spring源码解析IOC
  13. Java核心技术及面试指南 多线程并发部分的面试题总结以及答案
  14. radhat6.6上安装oracle12c RAC (一)
  15. Javascript仿贪吃蛇出现Bug的反思
  16. 洛谷P3195 玩具装箱TOY
  17. python(五)——运算符
  18. redis.conf配置详解(转)
  19. hadoop三个配置文件的参数含义说明(转)
  20. django源码(2.0.2)粗解之命令行执行

热门文章

  1. jQuery-animate万能动画效果
  2. 准备mybatis-spring
  3. JavaScript--元素对象方法setAttribute() 和appendChild()
  4. Helter Skelter (扫描线 + 离散化 + 树状数组)
  5. 【impala学习之二】impala 使用
  6. Linux 操作系统镜像下载
  7. 设计模式之Memento(备忘机制)(转)
  8. flask上下文全局变量,程序上下文、请求上下文、上下文钩子
  9. API gateway 之 kong 安装
  10. 前端框架VUE----es6简单介绍