XGCIErrors
函数原型
XuguCIRETURN Xugu_API XuguCIErrors(
XuguCIHSTMT Hndp,
char* ccode,
char* errmessage,
int* rlen
);
功能
诊断当前句柄已经发生的错误信息,通常的句柄类型为连接句柄或语句句柄。
参数
- Hndp:句柄,常见的句柄类型为:HT_STATEMENT或HT_SESSION。
- ccode:错误码,通常为6字节错误特征码,传递错误信息简码。
- errmessage:错误信息,更详细的说明错误产生的原因或错误的细节信息。字符串类型。
- rlen:对前一个参数,错误信息的长度返回指示。最大长度不超过512字节。如果错误信息超长,则发生截断,最大显示512字节。
返回值
如下表所示:
返回代码 | 函数返回值 | 错误码 | 错误信息描述 | 故障中文简要描述 |
---|---|---|---|---|
XGCI_SUCCESS | 0 | 无 | 成功 | 成功 |
XGCI_NO_DATA | 100 | 无 | 到达SELECT RESULT末尾,无数据 | 到达SELECT RESULT末尾,无数据 |
XGCI_NULL_ROW | 101 | 无 | 接受行数据时,网络无行数据,返回空行 | 接受行数据时,网络无行数据,返回空行 |
XGCI_ERROR | -1 | 无 | 错误 | 此错误一般需要结合XGCIErrors调用进一步判断详细错误信息 |
XGCI_ERROR | -1 | E19884 | can't connect to server | 连接到数据库失败,可能的情况主要是网络不通或者用户名密码错误 |
XGCI_ERROR | -1 | E19961 | params bind conflict with execute sql | sql语句和绑定的参数冲突,比如sql里面没有参数,但是实际绑定了参数,sql语句有参数但是实际没有绑定参数 |
XGCI_ERROR | -1 | E19962 | params bind num conflict with execute sql | sql语句中参数占位符的数量和实际绑定的参数的个数不匹配 |
XGCI_ERROR | -1 | E19963 | params bind conflicted in execute sql | 参数占位符与参数绑定的类型不符,参数按名绑定的需要用(:参数名)标识,按序号绑定的需要用?标识占位 |
XGCI_ERROR | -1 | E02351 | with out a resultset | 取当前结果集的列数,但是当前sql语句不产生结果集 |
XGCI_INVALID_HANDLE | -2 | - | 无效的句柄 | 传入的句柄异常 |
XGCI_INVALID_ARG | -3 | - | 无效的参数 | 参数传入异常 |
XGCI_NET_ERROR | -4 | - | 网络错误 | 在发送sql语句或接收数据返回时,因网络中断而产生的错误 |
XGCI_MEM_ERROR | -5 | E19960 | Memory allocate error | 内存申请失败,内存不够或者申请的长度异常 |
XGCI_INVALID_ATTR | -6 | - | 无效的属性 | 在进行设置句柄属性或者获得句柄属性时,遇到某些不支持的属性,会返回此值 |
XGCI_BINDPARAM_NO_ERROR | -8 | - | 参数序号错误 | 参数按序号绑定时,传入的序号异常 |
XGCI_UNIQ_ERR | -13 | E13001 | 违反唯一值约束 | 数据库中已经有一条数据的唯一值约束键与当前sql的唯一值键键值相同 |
XGCI_TIME_OUT | -14 | - | - | 查询结果集行数时,因结果集尚未返回完毕,收集的行数不能准确表示 |
XGCI_DATA_LEN_ERR | -17 | E17005 | 数值超界 | 数据数值超过列类型规定的范围 |
XGCI_CON_TIME_OUT | -24 | E19886 | connection not used long till timeout ,server cut the connection, now reconnect ok, you can resend the command again! | 连接因长时间空闲,被服务器端断开,但因再次访问而重建连接,用户可以再次发送当前命令 |
XGCI_SQL_TIME_OUT | -25 | E19887 | sql execute timeout if return value is -25 \n or connection not used long till timeout ,server cut the connection, now reconnect ok, you can resend the command again! | sql语句执行时间超时,连接长时间未被调用,直到被服务器端断开连接,现在新sql命令发送导致连接被重建,用户可以重新发送当前sql命令 |
Handle Type Constant | C Data Type | 说明 |
---|---|---|
XGCI_NULL_DATA | -1 | 列为NULL,无数据返回 |
XGCI_TRUNCATED_DATA | -2 | 数据被截断,申请的长度不够 |
XGCI_DATATYPE_ERROR | -3 | 数据类型无法转换,无法转化为目标输出类型 |
XGCI_FLOW_DATA | -4 | 数据类型越界 |