ODBC错误码_安装mentor的odbc驱动显示sql状态=s1000-程序员宅基地

技术标签: SQL  

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 列不成功。 在插入或更新 textimagentext 列的过程中发生了错误。该列将包含不正确的数据。如果可能,请回滚事务。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/feixue0000/article/details/15813747

智能推荐

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

电脑技巧:Windows系统原版纯净软件必备的两个网站_msdn我告诉你-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏14次。该如何避免的,今天小编给大家推荐两个下载Windows系统官方软件的资源网站,可以杜绝软件捆绑等行为。该站提供了丰富的Windows官方技术资源,比较重要的有MSDN技术资源文档库、官方工具和资源、应用程序、开发人员工具(Visual Studio 、SQLServer等等)、系统镜像、设计人员工具等。总的来说,这两个都是非常优秀的Windows系统镜像资源站,提供了丰富的Windows系统镜像资源,并且保证了资源的纯净和安全性,有需要的朋友可以去了解一下。这个非常实用的资源网站的创建者是国内的一个网友。_msdn我告诉你

vue2封装对话框el-dialog组件_<el-dialog 封装成组件 vue2-程序员宅基地

文章浏览阅读1.2k次。vue2封装对话框el-dialog组件_

MFC 文本框换行_c++ mfc同一框内输入二行怎么换行-程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏6次。MFC 文本框换行 标签: it mfc 文本框1.将Multiline属性设置为True2.换行是使用"\r\n" (宽字符串为L"\r\n")3.如果需要编辑并且按Enter键换行,还要将 Want Return 设置为 True4.如果需要垂直滚动条的话将Vertical Scroll属性设置为True,需要水平滚动条的话将Horizontal Scroll属性设_c++ mfc同一框内输入二行怎么换行

redis-desktop-manager无法连接redis-server的解决方法_redis-server doesn't support auth command or ismis-程序员宅基地

文章浏览阅读832次。检查Linux是否是否开启所需端口,默认为6379,若未打开,将其开启:以root用户执行iptables -I INPUT -p tcp --dport 6379 -j ACCEPT如果还是未能解决,修改redis.conf,修改主机地址:bind 192.168.85.**;然后使用该配置文件,重新启动Redis服务./redis-server redis.conf..._redis-server doesn't support auth command or ismisconfigured. try

实验四 数据选择器及其应用-程序员宅基地

文章浏览阅读4.9k次。济大数电实验报告_数据选择器及其应用

随便推点

灰色预测模型matlab_MATLAB实战|基于灰色预测河南省社会消费品零售总额预测-程序员宅基地

文章浏览阅读236次。1研究内容消费在生产中占据十分重要的地位,是生产的最终目的和动力,是保持省内经济稳定快速发展的核心要素。预测河南省社会消费品零售总额,是进行宏观经济调控和消费体制改变创新的基础,是河南省内人民对美好的全面和谐社会的追求的要求,保持河南省经济稳定和可持续发展具有重要意义。本文建立灰色预测模型,利用MATLAB软件,预测出2019年~2023年河南省社会消费品零售总额预测值分别为21881...._灰色预测模型用什么软件

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

100种思维模型之全局观思维模型-67_计算机中对于全局观的-程序员宅基地

文章浏览阅读786次。全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。_计算机中对于全局观的

线程间控制之CountDownLatch和CyclicBarrier使用介绍_countdownluach于cyclicbarrier的用法-程序员宅基地

文章浏览阅读330次。一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do..._countdownluach于cyclicbarrier的用法

自动化监控系统Prometheus&Grafana_-自动化监控系统prometheus&grafana实战-程序员宅基地

文章浏览阅读508次。Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,_-自动化监控系统prometheus&grafana实战

React 组件封装之 Search 搜索_react search-程序员宅基地

文章浏览阅读4.7k次。输入关键字,可以通过键盘的搜索按钮完成搜索功能。_react search