报错:[Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度
- 问题描述
执行到 preparedStatement.setObject(1, “1111”);
出现报错 :[Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度
- 解决方法
// preparedStatement.setObject(1, "1111"); // 会报错 [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度// 改成 setBytes() 的方式preparedStatement.setBytes(1, "111很好看".getBytes(StandardCharsets.UTF_16LE));
原因分析
具体什么原因也不清楚,大概就是:不使用Object等类型,改用 bytes 字节数组。因为Jdk 1.6/7在64位操作系统上JDBC-ODBC桥上的Bug,导致在调用ResultSet.getObject()/getString()的时候随机并且不定时的报出 [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度 这个错误。并不是一定会报错,可能是正常的运行了一段时间之后才报出来。
出处:https://blog.51cto.com/u_15127605/4234309
4.简单完整的 demo
// 加载驱动Class.forName("org.objectweb.rmijdbc.Driver").newInstance();// 连接 Connection Connection connection = DriverManager.getConnection(url);// 预编译 PreparedStatement PreparedStatement preparedStatement = connection.prepareStatement("insert into triode (part_number,name) values (?,?)");// 改成 setBytes() 的方式preparedStatement.setBytes(1, "111很好看".getBytes(StandardCharsets.UTF_16LE));// StandardCharsets.UTF_16LE 乱码的话,再试试其它的preparedStatement.setBytes(2, "222靠路口".getBytes(StandardCharsets.UTF_16LE));preparedStatement.addBatch();preparedStatement.executeUpdate();// 关闭操作if (preparedStatement != null) {preparedStatement.close();}if (connection != null) {connection.close();}
参考文章:关于PreparedStatement.addBatch()方法
https://blog.csdn.net/blueling51/article/details/6928755
报错:[Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度相关推荐
- python连接sqlServer,报错:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
1. 在jupyter notebook连接sqlServer报错 报错信息:InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] ...
- [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
网页显示的出错内容: Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC 驱动程序管理器] 在指定的 D ...
- [Microsoft] [ODBC驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3:不能连接
这个问题是我用一个登录程序连接SQLServer数据库时出现的错误,但是根据网上的其他教程来做,依旧没有解决,网上大部分都说要来设置ODBC数据源管理程序,"要用系统DSN". 下 ...
- Qt程序连接Access数据库,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect“错误的解决办法
Qt程序连接Access数据库,出现 1."[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect&q ...
- odbc java 驱动程序_java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配...
今天把sql server 2008 r2装了起来,64位的,然后就迫不及待地体验连接数据库的操作,编程语言是java.我一开始学了一种非常老的连接方式,使用JDBC-ODBC桥.初次使用不太熟练,所 ...
- 微软ODBC服务器驱动,解决安装SQL Server时[Microsoft][ODBC 驱动程序管理器] 未发现数据源的问题...
在Windows Server 2003 上安装 MS SQL Server 2000 时,最后阶段安装程序在配置服务器时,出现"[Microsoft][ODBC 驱动程序管理器] 未发现数 ...
- java未发现数据源名称并且未指定默认驱动程序_转:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序...
在Win7 64位系统下,使用Java+Access数据库编程,用Java连数据库时,出现错误提示,如下: Java java.sql.SQLException: [Microsoft][ODBC 驱 ...
- [IM002] [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序 Navicat Premium 连接sql server
[IM002] [Microsoft][ODBC驱动程序管理器]未发现数据源名称并且未指定默认驱动程序 错误 Navicat 连接sqlserver没有驱动,需要先安装一下驱动 解决办法 首先需要找到 ...
- System.Data.Odbc.OdbcException: ERROR [IM001] [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能
System.Data.Odbc.OdbcException: ERROR [IM001] [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能 出现这个原因是因为vfpodbc. ...
- [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 本人不喜欢在本机装sql server,因为又庞大,又占空间,而且在安装过程中有时会出错,处 ...
最新文章
- [Linux]VI相关操作
- eclipse安装JAVA反编译插件
- redis 集群 及 管理初步
- 移动端C#病毒“东山再起”,利用知名应用通信实现远控隐私窃取
- hdu1532(最大流裸题)
- 如何在Lua与C/C++之间实现table数据的交换
- MacOS使用brew无法安装Python_无法安装gdbm_无法安装autojump
- SQL服务器名称更改
- ubuntu彻底卸载Nvidia显卡驱动
- FHIR标准和国际基于FHIR的互联互通实践(1):如何定义互联互通?
- 道路交通安全隐患排查的方法研究
- CIS Control v8的变化
- 弘辽科技:新品直通车怎么选词?怎样测试人群标签?
- CSS DIV 折角的代码
- java倒计时器_Java并发系列5--倒计时器CountDownLatch
- 瑞数5维普期刊js逆向
- 音乐文件自动整理工具
- 【个人整理】一文看尽目标检测算法SSD的核心架构与设计思想
- NoSQL代表: Mongo DB(芒果数据库) NoSQL代表: Mongo DB(芒果数据库)
- 【调剂】重庆理工大学2022年硕士研究生招生调剂公告
热门文章
- 安装svn 汉化包 也不能设置中文
- linux进程通信 bzero函数,处理Linux网络编程中的IP地址 — 通信产业...
- 2018年最新北风网人工智能视频教程(完整版)
- PyGame:Python 游戏编程入门-1
- 懒人查看python源码方法
- 2021第十二届蓝桥杯省赛B组原题答案及总结
- 【C++模块实现】| 【07】对于互斥、自旋锁、条件变量、信号量简介及封装
- 数据库系统概论-数据库安全性
- MaxtoCode 1.10 普及版 开发已经接近尾声
- 小学多媒体计算机室管理计划,多媒体教室管理工作计划5篇