Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 Excel电子表格中的VARCHAR大小限制_Sql Server 2008_Excel 2007_Connection String - Fatal编程技术网

Sql server 2008 Excel电子表格中的VARCHAR大小限制

Sql server 2008 Excel电子表格中的VARCHAR大小限制,sql-server-2008,excel-2007,connection-string,Sql Server 2008,Excel 2007,Connection String,我正在尝试使用以下连接字符串将SQL Server 2008数据库中的一些数据读入带有C#的Excel 2007电子表格: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=foo.xlsx;Extended Properties='Excel 12.0 XML;HDR=YES' 数据库中的一列是VARCHAR(1000)。当我尝试在电子表格中重新创建模式时,Excel的VARCHAR似乎最多只支持255个。建议“一个单元格可以包含的字符总数”约为32

我正在尝试使用以下连接字符串将SQL Server 2008数据库中的一些数据读入带有C#的Excel 2007电子表格:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=foo.xlsx;Extended Properties='Excel 12.0 XML;HDR=YES'
数据库中的一列是VARCHAR(1000)。当我尝试在电子表格中重新创建模式时,Excel的VARCHAR似乎最多只支持255个。建议“一个单元格可以包含的字符总数”约为32K,因此原则上,应该可以在中获得更长的字符串


是否有一种简单的方法可以绕过255个字符的限制?

尽管XLOPER12现在支持最多32767个Unicode字符长的字符串,但XLFEevaluate(和其他)excel C-Api函数在excel 2010中仍然限制为255个字符长。如果传递的XLOPER12字符串长度超过255,它将返回xltypeErr

用户在Excel中看到的许多版本的所有字符串现在都作为Unicode字符串存储在内部。Unicode工作表字符串的长度最多可以为32767(215-1)个字符,并且可以包含任何有效的Unicode字符

当C API首次引入时,工作表字符串是长度限制为255个字符的字节字符串,C API反映了这些限制。在Excel2007中,C API更新为处理Excel长Unicode字符串。这意味着以正确方式注册的DLL函数可以接受Unicode参数并返回Unicode字符串

注:
为了向后兼容,C API仍然完全支持字节字符串,但是它们仍然具有相同的255个字符的限制。除了截断字符串或将字符串分成多个单元格之外,没有简单的解决方案。

我没有引用这一点,因此我不会给出答案,但我相信您不能。255个字符的限制也适用于SSI。我怀疑这是Excel ODBC驱动程序固有的。我希望我是错的,这有时对我来说是非常有价值的。虽然我很欣赏你在这方面所做的努力,但你的回答是迂回的,结论有点不清楚。你基本上是说没有办法绕过255个字符的限制吗?为了将来的参考,我建议在第一句话中明确地说明这一点,然后再提供进一步的细节来支持您的案例。