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的还没有想好。

分块读取Blob字段数据(MSSQL)的更多相关文章

  1. 分块读取Blob字段数据(Oracle)

    试过了MSSQL的分块读取Blob字段,又尝试在Oracle下完成,发现还是可行的. 首先建立一个存储过程: create or replace procedure PRO_GET_BLOB(     ...

  2. C# 连接 Oracle,读取Blob字段数据,存到文件中去,包括pdf等等

    代码如下,记得引入Oracle的dll using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  3. Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)

    转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...

  4. FIREDAC保存ORACLE的BLOB字段数据

     FIREDAC默认识别ORACLE的BLOB字段为HUGEBLOB,需要将HBLOB映射为BLOB,才可以保存ORACLE的BLOB字段的数据.

  5. 插入与读取Blob类型数据

    BlobTest package com.aff.PreparedStatement; import java.io.File; import java.io.FileInputStream; imp ...

  6. C#读取Mysql blob字段 (转帖)

    http://blog.csdn.net/config_man/article/details/6123191 开发环境:Windows XP Professional SP3.VS2008.Winf ...

  7. Oracle数据库BLOB字段的存取

    述]     Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cur ...

  8. Java实现打包下载BLOB字段中的文件

    概述 web项目的文件打包下载实现:servlet接收请求,spring工具类访问数据库及简化大字段内容获取,org.apache.tools.zip打包. 必要提醒:当前总结是继Java实现下载BL ...

  9. Java读取lob格式数据

    想要读出lob里面的图片数据,就要确认clob里面存储的是什么,一般情况下存储的base64的串串.所以就以base64为例,而Blob里面存储的大部分是图片数据,但也有xml内容数据. 1查询lob ...

随机推荐

  1. vbs调用bat 隐藏bat运行时的黑框

    //新建文本文件 ,保存为后缀为bat.如:startBAT.vbs public const vbQuote="""" temp="C:\A_WOR ...

  2. react的props验证

    Props 验证使用 propTypes,它可以保证我们的应用组件被正确使用,React.PropTypes 提供很多验证器 (validator) 来验证传入数据是否有效. 当向 props 传入无 ...

  3. LeetCode14.最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  4. eclipse安装Freemaker IDE插件

    eclipse安装Freemaker IDE插件 http://download.jboss.org/jbosstools/updates/

  5. mac快捷键留存查看

    基本的快捷键 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl.所以以下最基本操作很好理解: Command-Z 撤销 Command-X 剪切 Command- ...

  6. Python全栈-day4-语法基础2

    一.字符串 1.字符串基础 1)作用:用于描述姓名.性别.地址等信息 2)定义方式:单引号或者双引号以及三引号内添加字符 注:day3中介绍 name = 'zhang' user_name = &q ...

  7. tomcat 、NIO、netty 本质

    tomcat 基于 Socket,面向 web 浏览器的通信容器 nio 同步非阻塞的I/O模型 netty 通信框架,对 nio 的封装

  8. sqlmap的使用

    安全测试===sqlmap(壹)转载   六.优化 这些参数可以优化Sqlmap的性能. 1.一键优化 参数:-o 添加此参数相当于同时添加下列三个优化参数: --keep-alive --null- ...

  9. Google自动广告,将广告代码放置在 HTML 中的什么位置?

    Google自动广告,将广告代码放置在 HTML 中的什么位置? 为自动广告生成广告代码后,您需要将此代码放置在要展示广告的每个网页中.您应将广告代码放置在网页的 <head> 标记(或正 ...

  10. mysql查询语句 查询方式