ADO结果集将字段返回为字段长度
我从SQL Server(2008 R2)存储过程中生成一个logging集,该过程在Excel VBA中填充ComboBox
。
如果我运行一个查询来获得从表中返回的每个值的长度,它看起来像这样:
SELECT [outcome], LEN([outcome]) AS [Length] FROM [dbo].[crl_outcome] GROUP BY [outcome]
在执行存储过程时,我将logging集分配给一个variables数组,例如:
varList = oRS.GetRows() MsgBox Len(varList(1, 0))
MsgBox
返回表中长度为21个字符的SQL语句中显示的字段,长度为128个字符,其余空格组成剩余的107个字符。
正如你所看到的,这个值没有格式化,但表中的字段被指定为nchar(128)
。
有谁知道为什么每个结果都有空格附加在他们的结尾?
我相信这是nchar的本质。 尝试使用nvarchar,因为它不会用空格填充数据。 这是另一个看到这个以前的讨论更多的细节。
正如您所提到的,您可以使用TRIM
函数从现有string中删除尾随空格。