如何使用 ADO 中的 CAST 将浮点值转换为字符串?
I tried
SELECT CAST([Field] AS VARCHAR(20)) FROM ...
and
SELECT CAST([Field] AS STRING) FROM ...
并且总是收到 OLE 异常(未知错误)。
表列包含混合数字(右对齐)和字母数字(左对齐)值。如果只有字母数字值,则 ADO 查询字段类型为字符串。
我正在使用 Delphi 2009 ADO 和 Excel 2010。
CAST 是 SQL-Server 表达式。使用SELECT Field FROM...
在德尔福:ADOQuery.FieldByName('Field').AsString
你不能通过 SQL 语句来转换它。
使用时混合数据类型:
Read 这个来自MSDN http://support.microsoft.com/kb/257819 (关于混合数据类型的警告):
ADO 必须猜测 Excel 中每一列的数据类型
工作表或范围。 (这不受 Excel 单元格格式的影响
设置。)如果您有数值,可能会出现严重问题
与同一列中的文本值混合。 Jet 和 ODBC
Provider返回多数类型的数据,但返回NULL(空)
少数数据类型的值。如果两种类型均匀混合
在该列中,提供商选择数字而不是文本。
你需要添加IMEX=1
在连接字符串的扩展属性部分。
持久字段将为 TWideStringField。
连接字符串应如下所示:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=C:\MyFile.xls;Mode=Share Deny None;Extended Properties="Excel 8.0;IMEX=1";...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)