Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 16 - 更改和升级 » 16.0 版中的新功能 » SQL Anywhere 行为更改

 

系统过程和函数行为的更改

以下列出了在 SQL Anywhere 16.0 版中增加的对系统过程和函数行为的更改。

  • TRACEBACK 函数增强   TRACEBACK 函数可返回以对象名和行数注释的调用堆栈,从而简化了查找调用堆栈中报告的实际语句的过程。 请参见TRACEBACK 函数 [Miscellaneous]

  • 对 SMTP 和 MAPI 返回代码的更改   对 xp_startmail、xp_startsmtp、xp_sendmail、xp_stopmail 和 xp_stopsmtp 系统过程所使用的返回代码进行了以下更改:

    返回代码 在以前版本中的含义 在 16.0 版数据库中的含义 其它信息
    -1 未知错误 新错误代码
    0 成功 成功
    1 提供的参数无效 新错误代码
    2 xp_startmail 或 xp_startsmtp 失败 内存不足
    3 xp_stopmail 或 xp_stopsmtp 失败 xp_startmail 或 xp_startsmtp 未调用
    4 主机名不当 新错误代码
    5 xp_sendmail 失败 连接错误
    6 安全连接错误 新错误代码
    7 MAPI 函数不可用 新错误代码

    xp_get_mail_error_code 和 xp_get_mail_error_text 系统过程可返回关于返回代码的更多信息。必须升级现有数据库以获取新的系统过程和错误代码。 请参见:

    如果无法更改应用程序以检查更新的返回代码,可对数据库服务器进行配置,通过 12 版 dbext.dll 文件和 use_old_dbextf.sql 脚本(位于 SQL Anywhere 安装的 scripts 子目录中)使用先前软件版本中的返回代码。 请参见数据库服务器部署

  • USER_NAME 和 SUSER_NAME 函数现在返回 VARCHAR   user_name 和 suser_name 函数现在会返回 VARCHAR 类型而非 LONG VARCHAR 类型的数据。如存在使用这些函数的实例化视图,则需将其重建。

  • 出错处理   在插入或分析行时,若语句出现错误,为允许执行 LOAD TABLE 操作,可将问题行写入 ROW LOG,将错误消息写入 MESSAGE LOG。出现可指定的错误数量后,语句将失败并回退。添加了以下子句来支持此功能:

    • ALLOW...ERRORS
    • ROW LOG...
    • MESSAGE LOG...

    请参见LOAD TABLE 语句