odbc错误信息一览表
ODBC 错误信息
根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值。SQLSTATE 值是包含五个字符的字符串。下表列出了驱动程序可以为 SQLError 返回的 SQLSTATE 值。
为 SQLSTATE 返回的字符串值由两个字符的类值后接三个字符的子类值组成。类值 01 表明是一种警告,后跟随 SQL_SUCCESS_WITH_INFO 的返回代码。只要类值不是 01(IM 除外),则表明是一种错误,后跟随 SQL_ERROR 的返回代码。类 IM 专门用于表明从 ODBC 实现产生的警告和错误。任何类中子类值 000 均用于实现给定类中所定义条件。这种类值和子类值的分配方法由 SQL-92 定义。
说明 通常由返回值 SQL_SUCCESS 表明成功执行了一个函数,但 SQLSTATE 00000 也表明成功执行。
SQLSTATE | ODBC API(驱动程序管理器)错误 |
---|---|
00000 | 成功 |
01000 | 常规警告 |
01002 | 断开连接错误 |
01004 | 数据被截断 |
01006 | 未废除特权 |
01S00 | 无效连接字符串特性 |
01S01 | 行中的错误 |
01S02 | 选项值已更改 |
01S03 | 未更新或删除任何行 |
01S04 | 更新或删除了多行 |
01S05 | 取消操作被当成 FreeStmt/Close |
01S06 | 设法在结果返回第一个行集之前进行提取 |
07001 | 参数个数错误 |
07006 | 违反受限制的数据类型特性 |
07S01 | 默认参数使用无效 |
08001 | 无法连接到数据源 |
08002 | 连接正在使用 |
08003 | 连接未打开 |
08004 | 数据源拒绝建立连接 |
08007 | 在执行事务的过程中连接失败 |
08S01 | 通讯链接失败 |
21S01 | 插入值列表与列列表不匹配 |
21S02 | 派生表的程度与列列表不匹配 |
22001 | 字符串数据右截断 |
22002 | 需要指示符变量,但未提供 |
22003 | 数字值超出范围 |
22005 | 分配时出错 |
22008 | Datetime 字段溢出 |
22012 | 被零除错误 |
22026 | 字符串数据,长度不匹配 |
23000 | 违反完整性约束 |
24000* | 无效的游标状态 |
25000 | 无效的事务状态 |
28000 | 无效的授权规范 |
34000 | 无效的游标名称 |
37000 | 语法错误或违规访问 |
3C000 | 重复的游标名称 |
40001 | 串行错误 |
42000 | 语法错误或违规访问 |
70100 | 操作终止 |
IM001 | 驱动程序不支持本函数 |
IM002 | 未找到源名称并且未指定默认驱动程序 |
IM003 | 无法装载指定的驱动程序 |
IM004 | 驱动程序的 SQLAllocEnv 失败 |
IM005 | 驱动程序的 SQLAllocConnect 失败 |
IM006 | 驱动程序的 SQLSetConnectOption 失败 |
IM007 | 未指定数据源或驱动程序;禁止对话 |
IM008 | 对话失败 |
IM009 | 无法装载转换 DLL |
IM010 | 数据源名称过长 |
IM011 | 驱动程序名称过长 |
IM012 | DRIVER 关键字语法错误 |
IM013 | 跟踪文件错误 |
S0001 | 基表或视图已存在 |
S0002 | 未找到基表 |
S0011 | 索引已经存在 |
S0012 | 未找到索引 |
S0021 | 列已存在 |
S0022 | 未找到列 |
S0023 | 列无默认值 |
S1000 | 常规错误 |
S1001 | 内存分配失败 |
S1002 | 列编号无效 |
S1003 | 程序类型超出范围 |
S1004 | SQL 数据类型超出范围 |
S1008 | 已取消操作 |
S1009 | 参数值无效 |
S1010 | 函数序列错误 |
S1011 | 操作在此时无效 |
S1012 | 所指定的事务操作代码无效 |
S1015 | 无可用的游标名称 |
S1090 | 字符串或缓冲区长度无效 |
S1091 | 描述符类型超出范围 |
S1092 | 选项类型超出范围 |
S1093 | 参数编号无效 |
S1094 | 小数位数值无效 |
S1095 | 函数类型超出范围 |
S1096 | 信息类型超出范围 |
S1097 | 列类型超出范围 |
S1098 | 作用域类型超出范围 |
S1099 | 可为空类型超出范围 |
S1100 | 唯一性选项类型超出范围 |
S1101 | 准确性选项类型超出范围 |
S1103 | 方向选项超出范围 |
S1104 | 精度值无效 |
S1105 | 参数类型无效 |
S1106 | 提取类型超出范围 |
S1107 | 行值超出范围 |
S1108 | 并发选项超出范围 |
S1109 | 游标位置无效 |
S1110 | 驱动程序完成无效 |
S1111 | 书签值无效 |
S1C00 | 驱动程序无法执行 |
S1DE0 | 执行值挂起时无数据 |
S1T00 | 超时失效 |
* 在 SQL Server 企业管理器中,当设法保存选定表或保存数据库关系图时,如果 Microsoft® SQL Server™ 用尽资源,则可能接收到"游标状态无效"的错误信息。返回此错误的原因是,数据库或事务日志的空间不足,无法完成保存进程。若要修正此问题,请检查数据库或事务日志是否已满。如果已满,请增加数据库的大小以容纳更改。请检查其它的系统资源或与系统管理员联系。
除 ODBC 程序员参考文档中的标准 ODBC 错误信息外,SQL Server ODBC 驱动程序可以为某些 SQLSTATE 值返回错误信息,如下表所示。
SQLSTATE | SQL SERVER 驱动程序错误 | 描述 |
---|---|---|
01000 | 已将 %ld 行发送到 SQL Server。共有:%ld 行。 | 使用 BCP API,已将一批行发送到 SQL Server。 |
01000 | 成功进行了大容量复制,已总共将 %ld 行复制到主文件中。共收到:%ld 行。 | 使用 BCP API,已将一批行写入到主文件中。 |
01000 | 已拒绝对在 DSN 中配置的数据库进行访问。使用默认值。 | 数据库不存在,或用户不具有对该数据库的访问权限。使用了为登录 ID 配置的默认数据库。 |
01000 | 在设法访问日志文件时出错,禁用日志记录。 | 无法使用驱动程序统计或长时间查询的日志文件。已禁用驱动程序统计或长时间查询的日志记录。 |
01000 | 连接到备份服务器。 | SQL Server 主服务器不可用,因此连接到后备服务器。 |
01000 | 不支持在 DSN 中配置的语言。使用默认值。 | 语言名称无效,或未在服务器上安装该语言。使用了为登录 ID 配置的默认语言。 |
01000 | Null 位数据强制为零。 | 正将包含 NULL 的位字段装载到不支持 NULL 位数据的服务器。该字段设置为零。 |
01000 | 用 'EXEC' 执行了过程。未返回任何输出参数。 | 无法作为 RPC 执行过程,并且指定了输出参数。因为已用 EXEC 执行了过程,将不存储任何输出参数。 |
01000 | 禁用 SQL 调试。 | 无法启用 SQL 调试,原因是没有为 SQL 调试对 SQL Server 进行配置。 |
01000 | 安装在 %s 服务器上的 ODBC 目录存储过程的版本为 %s;要确保正确操作,需要 %02d.%02d.%4.4d 版或更高版本。请与系统管理员联系。 | 通过执行 /Msqql/Install/Instcat.sql 安装 ODBC 目录存储过程。 |
01000 | 将长度为零的数据强制为长度为 1。 | 正在装载零长度二进制或字符字段,但不支持零长度数据。字段强制为 1 字节空格或二进制零。 |
01S02 | 游标并发已更改。 | 因为请求或查询的类型,应用程序请求了无法遵守的并发。代之以使用另一个并发。 |
01S02 | 游标类型已更改。 | 因为请求或查询的类型,应用程序请求了无法遵守的游标类型。代之以使用另一种游标类型。 |
01S02 | 服务器未遵守数据包大小更改,使用了服务器大小。 | 应用程序请求了无法为 SQL Server 所支持的非默认数据包大小。代之以使用服务器默认大小。 |
01S02 | 数据包大小已更改。 | 应用程序请求了非默认数据包大小,超出了允许的大小限制。根据所请求的大小是过大,还是过小,代之以使用最小的或最大的数据包大小。 |
01S02 | 登录超时已更改。 | 应用程序请求了一个过长的登录超时。代之以使用最大的登录超时。 |
07006 | 不允许使用 bcp_moretext 进行转换。 | 使用 bcp_moretext 的应用程序与列类型必须具有相同的字段类型。 |
08004 | 服务器拒绝连接;已拒绝对所选数据库的访问。 | 数据库不存在,或用户不具有对该数据库的访问权限。 |
08004 | 服务器拒绝连接;不支持所指定的语言。 | 语言名无效,或未在 SQL Server 上安装该语言。 |
HY024 | 数据库无效或无法访问。 | 数据库不存在,或用户不具有对该数据库的访问权限。 |
IM006 | 服务器不支持数据包大小更改,使用默认值。 | 应用程序请求了 SQL Server 不支持的非默认数据包大小。使用了客户默认大小。 |
HY000 | 所有绑定列都是只读的。 | 必须是可升级的列,以使用 SQLSetPos 或 SQLBulkOperations 更改或插入行。 |
HY000 | 已检测到一个旧 netlib (%s)。请删除并重新启动应用程序。 | 正在装载的 netlib 已过期。驱动程序请求一个较新的 netlib。 问题可能出在应用程序当前目录中的 netlib,正在装载的是这个 netlib,而不是系统目录中的那个。也可能是该 netlib 安装不当或已损坏。如果错误文本中所指定的 netlib 存在于 Windows 系统目录外的其它地方,请将其删除。如果 netlib 只存在于系统目录中,在客户端安装客户实用工具,然后重新启动应用程序。 |
HY000 | 尝试将 NULL 值大容量复制到不接受 NULL 值的 Server 列中。 | 字段包含 NULL 值,但列不允许 NULL 值。 |
HY000 | 尝试将过大的列大容量复制到 SQL Server。 | 为列提供的长度大于表中的列定义。 |
HY000 | 尝试读取 BCP 格式文件的未知版本。 | bcp 格式文件中的标题行采用了不可识别的版本。 |
HY000 | 错误的大容量复制方向。必须是 IN 或者 OUT。 | bcp_init 调用没有为 eDirection 参数指定有效的方向。 |
HY000 | 错误的终止符。 | bcp_bind 中提供的终止符字符串无效。 |
HY000 | Bcp 主文件必须至少包含一列。 | 未选定任何要装载的列。 |
HY000 | 无法生成 SSPI 上下文。 | 驱动程序无法获得集成安全性所要求的 SSPI 上下文。本机错误将包含该 Win32 错误代码。 |
HY000 | 无法初始化 SSPI 包。 | 驱动程序无法获得集成安全性所要求的 SSPI 上下文。本机错误将包含该 Win32 错误代码。 |
HY000 | 通讯模块无效。未正确安装驱动程序。 | 网络库 .dll 已损坏。在客户端安装客户实用工具,然后重新启动应用程序。 |
HY000 | 连接忙,结果针对另一个 hstmt。 | SQL Server ODBC 驱动程序只允许一个活动的 hstmt。有关更多信息,请参见使用默认结果集。 |
HY000 | 未对 BCP 启用连接。 | 使用 BCP API 的应用程序必须在连接之前设置 SQLSetConnectAttr 或 SQL_SS_COPT_BCP 特性。 |
HY000 | 关闭连接时失败。 | 网络库中的 ConnectionClose 函数失败。此问题通常是由网络或 SQL Server 问题引起的。 |
HY000 | 对于 BCP,必须对所有变长数据指定长度前缀或终止符。 | 用 SQL_VARYLEN_DATA 调用了 bcp_bind,但未指定前缀长度或终止符。 |
HY000 | 只有在复制到服务器中时,才能跳过主文件列。 | bcp out 格式文件指定应跳过列。不允许进行这种指定。创建一个视图,其中只包含所需列和该视图的 bcp out,或使用 -Q 标志提供一个只选择所需列的 SELECT 语句。 |
HY000 | 在 BCP 格式文件中找到不正确的主列号。 | 格式文件所包含的列号大于表中的列数。 |
HY000 | 在读取 bcp 数据文件时发生 I/O 错误。 | |
HY000 | 在读取 BCP 格式文件时发生 I/O 错误。 | |
HY000 | 写入 bcp 数据文件时发生 I/O 错误。 | |
HY000 | 在写入 bcp 错误文件时发生 I/O 错误。 | |
HY000 | 无效选项。 | 到 bcp_control 的 eOption 参数无效。 |
HY000 | 默认参数后面不允许有非默认参数。 | 在任何已用默认值进行指定的参数后面,存储过程的参数不能有非默认值。 |
HY000 | 没有足够的列绑定。 | 对于 bcp out,未绑定表的所有列。创建一个视图,其中只包含所需列和该视图的 bcp out,或使用 -Q 标志提供一个只选择所需列的 SELECT 语句。 |
HY000 | ODBC BCP/驱动程序版本不匹配。 | Sqlsrv32.dll 和 Odbcbcp.dll .dll 不具有相同的版本。在客户端安装客户实用工具,然后重新启动应用程序。 |
HY000 | TDS 流中发生协议错误。 | 服务器的 TDS 流无效。此问题一般是由 SQL Server 问题引起的。请查看SQL Server 错误日志。 |
HY000 | 表中包含的行数小于第一个行计数。 | 提供了起始行号,但服务器上的表未包含那些行数。未向主文件复制任何行。 |
HY000 | 表中包含的行数小于最后一个行计数。 | 提供了结束行号,但服务器上的表未包含那些行数。 |
HY000 | 表没有 text/image 列。 | 调用了 bcp_moretext,但表不包含任何 text 或image 列。 |
HY000 | TDS 缓冲区长度过大。 | 服务器的 TDS 流无效。此问题一般是由 SQL Server 问题引起的。请查看SQL Server 错误日志。 |
HY000 | 文本列数据不完整。 | bcp_moretext 所提供的长度的总和与 bcp_bind 或 bcp_collen 中所提供的长度不匹配。 |
HY000 | BCP 主文件包含的行数小于第一个行计数。 | 提供了起始行号,但主文件未包含那些行数。未装载任何行。 |
HY000 | 行长度超过了 SQL Server 所允许的最大长度。 | 行的数据长度的总和大于最大行大小。 |
HY000 | 无法在服务器上找到完成此操作所需的存储过程(用 SQL Server 提供)。请与系统管理员联系。 | 通过执行 /Msqql/Install/Instcat.sql 安装 ODBC 目录存储过程。 |
HY000 | 无法装载通讯模块。未正确安装驱动程序。 | 此客户端上不存在为该连接指定的网络库 .dll。在客户端安装客户实用工具,然后重新启动应用程序。 |
HY000 | 无法打开 BCP 主数据文件。 | 在 bcp_init 调用中指定的文件名不存在,或已由另一个应用程序打开。 |
HY000 | 无法打开 BCP 错误文件。 | 在 bcp_init 调用中指定的错误文件名不存在,或已由另一个应用程序打开。 |
HY000 | 无法读取驱动程序版本。 | 驱动程序无法在其 .DLL 中读取版本块。在客户端安装客户实用工具,然后重新启动应用程序。 |
HY000 | 在 BCP 数据文件中遇到意外 EOF。 | 在执行 bcp in 操作过程中,在处理最后一行的过程中,检测到了文件结尾。通常,这是由于原始表和正在装载的表具有不同的列数、类型、为空性或大小而造成的。 |
HY000 | Unicode 转换失败。 | 在和 Unicode 字符串之间进行转换时出错。本机错误将包含该 Win32 错误代码。 |
HY000 | Unicode 转换失败。必须在客户系统上安装 SQL server 代码页。 | 服务器代码页必须在客户端存在,方能执行正确的操作。清除 DSN 的"自动转换"复选框,或在客户端安装服务器的代码页。运行 EXECsp_server_info 18 可以确定服务器代码页。 |
HY000 | 从 SQL Server 接收到未知的令牌环。 | 服务器的 TDS 流无效。此错误一般是由服务器上的问题引起的。请查看SQL Server 错误日志。 |
HY000 | 警告:部分插入/更新。插入或更新 text 或 image 列不成功。 | 在插入或更新 text、image 或 ntext 列的过程中发生了错误。该列将包含不正确的数据。如果可能,请回滚事务。 |
odbc错误信息一览表的更多相关文章
- PHP编译过程中常见错误信息的解决方法
在CentOS编译PHP5的时候有时会遇到以下的一些错误信息,基本上都可以通过yum安装相应的库来解决.以下是具体的一些解决办法: checking for BZip2 support… yes ch ...
- SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
问题描述 按照微软官方教程尝试使用SSAS做OLAP时,出现如下错误信息: Severity Code Description Project File Line Suppression State ...
- 未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。
未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息.数据类型不被支持. 博客分类: 雅芳生涯 .Net VB C# OracleMicrosoftSecurity ...
- IIS将错误信息发送到浏览器
本文版权归博客园和dige1993所有,访问作者博客:http://www.cnblogs.com/dige1993 最近又开始玩ASP了,调试的时候出现错误不清楚详细错误信息特别不方便,记得以前可以 ...
- 【原】iOS学习之Xcode8关于控制台不打印错误信息
前几天将我的Xcode升到了8,但是在运行程序时,会打印很多没有用的信息,如下图: Xcode8运行程序时打印的乱码 于是各种寻求答案,找到如下答案: Edit Scheme-> Run -&g ...
- Ajax调用处理页面错误信息500的解决思路
最近在做项目的时候遇到一个问题:(李昌辉) 在本地服务器上做好之后,部署到阿里云虚拟主机,结果访问页面出现问题,由于登录使用的是AJAX调用处理页面,所以在点击登录的时候没有任何反应. 打开F12调试 ...
- 错误信息:内存位置访问无效。 (Exception from HRESULT: 0x800703E6)
错误提示: 错误信息:内存位置访问无效. (Exception from HRESULT: 0x800703E6) 异常类型:System.BadImageFormatException 堆栈跟踪: ...
- PHP通过ini_set()来设置显示错误信息和执行时间
PHP的 ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效.不是所有的选项都能被改函数设置的.具体那些值能够设置,可以查看手册中的列表. 就是能够设置php.ini ...
- 错误信息:attempt to create saveOrUpdate event with null entity
错误信息:attempt to create saveOrUpdate event with null entity; 这个错误网上答案比较多,我也不多说了. 我遇到的问题是在前台传过来的参数是nul ...
随机推荐
- jQuery Mobile页面跳转后未加载外部JS(转)
http://thewaychung.iteye.com/blog/1807447 在使用jQuery Mobile进行Web开发中,当页面跳转时(pageA => pageB),在pageB中 ...
- 【转载】cocs2dx中c++与c#互调
文章有参考http://www.cnblogs.com/zhxilin/archive/2013/03/20/2971331.html 下面以接入九幽数据统计插件为例 Step 1:如果是cocos2 ...
- android button minheight问题
Android的button控件默认在内部text周围是有padding的,而且不受控制,这样子看似button控件在高度/宽度上像是被拉伸了,如何解决这个问题? 只要在xml中设置MinHeight ...
- Python学习笔记:魔术方法详解
准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始. class NewType(Object): mor_code_here class OldType: ...
- JavaScript实现Ajax小结
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<TCP的三次握手和四次挥手> 作者主页:myvin 博主QQ:851399101(点击QQ和博主发起临 ...
- Bootstrap2和3的区别
如果你需要兼容IE8甚至是IE7和IE6,那么只能选择Bootstrap2,虽然它自身在IE6的效果也并不完美. 但是倘若你跟随时代的脚步,并且面向的客户也很高端大气上档次地选择只需要兼容高级 ...
- js中基本操作
1.操作标签值 <!DOCTYPE html> <html> <meta charset="utf-8"> <meta http-equi ...
- 大型网站系统架构实践(六)深入探讨web应用集群Session保持
原理 在第三,四篇文章中讲到了会话保持的问题,而且还遗留了一个问题,就是会话保持存在单点故障, 当时的方案是cookie插入后缀,即haproxy指负责分发请求,应用服务自行保持用户会话,如果应 用服 ...
- 团队项目--关于QQ项目的运行和总结
目前为止该QQ项目实现如下功能:添加好友到好友列表,可以把好友在不同分类中移动,同时支持离线查找添加好友,离线更换头像,离线发送消息,保存所有好友聊天记录,发送窗口抖动,查看对方信息,更改/添加信息等 ...
- 作业一_随笔3_调研Android的开发环境的发展演变
调研某一移动应用/平台的开发环境的发展演变:Android 其实,一开始,我只知道,苹果手机用IOS系统,其他很多手机时候安卓系统.我百度知道Android开发主要是android studio和Ec ...