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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 数据库选项 » 数据库选项简介 » 按字母顺序排列的选项列表

 

ansi_blanks 选项 [兼容性]

控制字符数据在客户端截断时的行为。

允许值

On、Off

缺省值

Off

注释

只有在数据库忽略字符串比较中的尾随空白,并填补读到字符数组的字符串时,ansi_blanks 选项才有效。在将数据类型为 CHAR(N) 的值读入一个 C char[M] 变量并且 N 大于或等于 M 时,它会强制出现截断错误。若将 ansi_blanks 选项设置为 Off,则只有在截断至少一个非空字符时才出现截断错误。

对于嵌入式 SQL,如果 ansi_blanks 选项设置为 On,则在提供数据类型为 DT_STRING 的值时,必须将 sqllen 字段设置为包含该值的缓冲区的长度(至少为该值的长度加上终止空字符的空间)。若 ansi_blanks 选项设置为 Off,则该长度只由空字符的位置决定。ansi_blanks 选项的值在建立连接时确定。建立连接后,更改该选项将不影响此 sqllen 嵌入式 SQL 行为。

若数据库以空白填补,则如果正在读取的表达式是 CHAR 或 NCHAR(不是 VARCHAR 或 NVARCHAR)并且正在被读取到 char 或 nchar(不是 VARCHAR 或 NVARCHAR)主机变量,则该选项控制发送到客户端的截断警告。如果满足这些条件,并且主机变量太小,不足以在读取的表达式以空白形式填补最大长度时容纳该表达式,则会引发截断警告,并且指示符中包含容纳读取的表达式所需的最小字节数(如果该表达式是用空白填补其最大长度)。如果表达式是 CHAR(N) 或 NCHAR(N),则指示符也可能被设置为 N 以外的其它值,以反映返回值的字符集转换结果和由于字符长度的不同造成的影响。