分块读取Blob字段数据(MSSQL)
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)的更多相关文章
- 分块读取Blob字段数据(Oracle)
试过了MSSQL的分块读取Blob字段,又尝试在Oracle下完成,发现还是可行的. 首先建立一个存储过程: create or replace procedure PRO_GET_BLOB( ...
- C# 连接 Oracle,读取Blob字段数据,存到文件中去,包括pdf等等
代码如下,记得引入Oracle的dll using System; using System.Collections.Generic; using System.ComponentModel; usi ...
- Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)
转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...
- FIREDAC保存ORACLE的BLOB字段数据
FIREDAC默认识别ORACLE的BLOB字段为HUGEBLOB,需要将HBLOB映射为BLOB,才可以保存ORACLE的BLOB字段的数据.
- 插入与读取Blob类型数据
BlobTest package com.aff.PreparedStatement; import java.io.File; import java.io.FileInputStream; imp ...
- C#读取Mysql blob字段 (转帖)
http://blog.csdn.net/config_man/article/details/6123191 开发环境:Windows XP Professional SP3.VS2008.Winf ...
- Oracle数据库BLOB字段的存取
述] Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cur ...
- Java实现打包下载BLOB字段中的文件
概述 web项目的文件打包下载实现:servlet接收请求,spring工具类访问数据库及简化大字段内容获取,org.apache.tools.zip打包. 必要提醒:当前总结是继Java实现下载BL ...
- Java读取lob格式数据
想要读出lob里面的图片数据,就要确认clob里面存储的是什么,一般情况下存储的base64的串串.所以就以base64为例,而Blob里面存储的大部分是图片数据,但也有xml内容数据. 1查询lob ...
随机推荐
- leetcode insertionSortList 对链表进行插入排序
描述: Sort a linked list using insertion sort. 使用插入排序对一个链表进行排序 普通的插入排序,时间复杂度O(n^2) class Solution { pu ...
- Cacti的使用
前期准备 SNMP的安装,控制机和被控机,以及被控机的配置 1.SNMP的安装参考:http://www.cnblogs.com/smallcoderhujin/p/3785731.html 2.被控 ...
- STL之Deque容器
1.Deque容器 1)deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. 2)deque在接口上和vect ...
- linux常用命令:mv 命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- mybatis源码解析1--前言
在开始分析mybatis源码之前,需要定一个目标,也就是我们不是为了读源码而去读,一定是带着问题去读,在读的时候去寻找到答案,然后再读码的同时整理总结,学习一些高级的编码方式和技巧. 首先我们知道my ...
- PHP 取302跳转后真实 URL 的两种方法
1 . 第一种,CURL形式[感觉处理略慢,代码偏多] $url = '将跳转的URL'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url) ...
- Ubuntu 为 root 帐号开启 SSH 登录
1. 修改 root 密码sudo passwd root 2. 以其他账户登录,通过 sudo nano 修改 /etc/ssh/sshd_config :xxx@ubuntu:~$ su - ro ...
- The Little Prince-12/05
The Little Prince-12/05 "When a mystery is too overpowering, one dare not disobey. Absurd as it ...
- 怎样从外网访问内网Node.js?
本地安装了一个Node.js,只能在局域网内访问,怎样从外网也能访问到本地的Node.js呢?本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Node.js 默认安装的Node.js端口 ...
- MyEclipse与Eclipse配置清单
MyEclipse与Eclipse配置清单 1.编码设置 workspace -> 设置全局编码utf-8 修改JSP编码(Encoding)为UTF-82.Java配置 格式 ...