读取SQL Server 2000 中二进制文件时抛出:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.
-------------------------------------------------------------------
google一下发现原因,是微软jdbc驱动包的一个BUG,
Microsoft support站点:
http://support.microsoft.com/kb/824106说明如下:
(1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text类型)
(2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取
(3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误
(4)如果想不查询语句中有没有image或text类型字段,都可以不按照顺序获取,或重复获取。
---------------------------------------------------------------------
提供两种解决方案:
1>Microsoft给出的方案是不能从右往左也不能连续读2次。没办法自己改代码,严格从左向右读。
2>使用第三方驱动jTDS取代微软的SQLServer2000的JDBC驱动。
要使用jTDS驱动,配置要做一些变动:
数据库URL:jdbc:jtds:sqlserver://localhost:1433;DatabaseName=XXX
驱动类:net.sourceforge.jtds.jdbc.Driver
其在sourceforge上的介绍中写到:
jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12, 15). jTDS is based on FreeTDS and is currently the fastest production-ready JDBC driver for SQL Server and Sybase. jTDS is 100% JDBC 3.0 compatible, supporting forward-only and scrollable/updateable ResultSets, concurrent (completely independent) Statements and implementing all the DatabaseMetaData and ResultSetMetaData methods.
目前最新版本是jtds - 1.2.2
项目页:[url]http://sourceforge.net/projects/jtds/ [/url]
分享到:
相关推荐
在MyDAC7.0.2版本中,主要解决了在MyDAC7.0.1中遇到的一个关键问题:在导出SQL文件时,Blob字段内容不完整。Blob字段通常用于存储大对象数据,如图像、文档或其他二进制文件。这个修复确保了当用户使用MyDAC进行数据...
该工具的使用方法通常是连接到目标数据库,选择要操作的表,然后设置一些参数,如是否包含特定字段、是否忽略某些数据类型(如BLOB或图片字段)等。一旦设置完成,工具会自动生成一系列的INSERT INTO语句,每一行...
标题《SQL优化30条军规》和描述“SQL优化的30条军规,希望可以帮到大家。军规适用场景:并发量大、数据量大的互联网业务,解读:讲解原因,解读比军规更重要”表明了这份文档旨在为处理高并发和大数据量场景下的...
在Barracuda行格式下,特别是DYNAMIC模式,TEXT和BLOB字段的前767字节存储在行内,其余部分存储在外部页。然而,这里出现了一个误解。尽管服务器的`innodb_file_format`设置为Barracuda,但默认情况下,新创建的表...
在C#编程中,将图片数据存储到数据库通常涉及到对图像进行编码,将其转化为二进制数据,然后存储在数据库的BLOB(Binary Large Object)字段中。这种做法允许我们以非结构化的方式存储大量的图像数据。以下是实现这...
首先,关于**二进制数据操作功能的增强**,这通常涉及到BLOB(Binary Large Object)类型的字段,如图片、文档或音频文件等。在升级前,可能处理这类数据较为复杂,需要通过专门的程序或API进行读取和写入。而现在,...
9. **XML和大数据支持**:支持XML数据类型的读写,以及处理大型BLOB和TEXT字段的能力。 10. **安装与配置**:.msi文件是Windows Installer包,便于在Windows系统上安装和配置MySQL Connector/Net。 这个合集中的...
3. **数据库兼容性**:MBG 1.3.1支持多种主流数据库,包括Oracle、MySQL、PostgreSQL、SQL Server、DB2等,这使得它在不同项目环境中具有广泛的适用性。 4. **生成的文件结构**:MBG生成的文件通常包括: - Model...
Delphi自带的Dbexpress for MSSQL驱动BUG太多了,我升级到了D2005里面的版本仍然有很多问题。 昨天花了不少时间在网上搜索了一下,找到了Core Lab出的Dbexpress for MSSQL驱动,装上后所有的问题都解决了。版本有点...
v1.6 解决流传输存在的BUG ,修正最后一个字段为blob字段导致语句生成错误的BUG v1.7 增加服务端sys.ini文件配置客户端登陆权限,增加批量执行SQL语句接口 v1.8 增加服务端提供自动升级功能,可以升级多个文件或者...
2. **文件下载**:文件下载涉及到HTTP响应头的设置,特别是`Content-Disposition`字段,它告诉浏览器如何处理响应的主体。ASP.NET可以通过`Response`对象来设置这些响应头,指示浏览器以下载方式处理内容。描述中...
网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if((temp.length()>=1000)&&(temp.length()<=2000)){ temp=StringUtils.rightPad(temp, 2008); }...
mdbtools-java库的工作原理可能包括解析Access数据库的BINARY Large Object (BLOB)数据类型、处理表和字段信息、执行SQL命令以及管理事务。它可能还提供了用于数据转换和导出的实用工具,以便将Access数据集成到其他...
使用`sqlite3_exec()`函数执行SQL命令`PRAGMA table_info(table_name)`或`PRAGMA index_list(table_name)`可以分别获取表和索引的信息。 10. **SQLite数据库是否有已知的大小限制?** SQLite没有固定的大小限制,...
MYSQL高级特性 81 4.1 集合函数 82 4.1.1 行列计数 82 4.1.2统计字段值的数目 82 4.1.3 计算字段的平均值 83 4.1.4 计算字段值的和 84 4.1.5 计算字段值的极值 84 4.1.6 总结 86 4.2 操作...
MYSQL高级特性 81 4.1 集合函数 82 4.1.1 行列计数 82 4.1.2统计字段值的数目 82 4.1.3 计算字段的平均值 83 4.1.4 计算字段值的和 84 4.1.5 计算字段值的极值 84 4.1.6 总结 86 4.2 操作...