如何使用sp_OASetProperty设置数组值

时间:2009-10-28 22:25:53

标签: sql-server excel-vba sql-server-2005 vba excel

我有一个存储过程来操作excel电子表格中的一些数据。我通过创建QueryTable对象导入数据。我想为对象设置TextFileColumnDataTypes属性,但我无法弄清楚如何将数组传递给sp_OASetProperty例程。

这是我的代码看起来像但显然不起作用:

EXECUTE @rc = master..sp_OASetProperty @xlQueryTable, 'TextFileColumnDataTypes', 'Array(xlTextFormat, xlTextFormat, xlGeneralFormat)'

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

xlTextFormat和xlGeneralFormat的值来自哪里?是否有可能是以下之一:

DECLARE @command VARCHAR(255);

SET @command = 'Array(' + @xlTextFormat + ', ' + @xlTextFormat + ', ' + @xlGeneralFormat + ')';
-- or
SET @command = 'Array("' + @xlTextFormat + '", "' + @xlTextFormat + '", "' + @xlGeneralFormat + '")';
-- or
SET @command = 'Array("xlTextFormat", "xlTextFormat", "xlGeneralFormat")';

EXEC @rc = master..sp_OASetProperty @xlQueryTable, 'TextFileColumnDataTypes', @command;

否则也许你应该抛弃sp_OA并使用CLR。