Запрос SQL, запущенный против книги Excel, возвращает усеченное текстовое поле - PullRequest
0 голосов
/ 13 марта 2009

Я выполняю запрос SQL SELECT через соединение ADO с книгой Excel 2007 со следующим кодом (с помощью пользовательской версии VBScript)

dim ado, rs
set ado = CreateObject("ADODB.Connection")
ado.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=workbook.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"
ado.open()
set rs = ado.execute("SELECT * FROM [sheet1$]")

, что просто. Проблема в том, что любая ячейка с текстом длиной более 255 символов усекается; есть ли способ обойти это? Есть ли свойство в строке подключения, которое будет поддерживать это, или это опция, которую мне нужно изменить в самом документе Excel? Я пробовал функцию CAST () MSSQL, но это просто вызывает ошибку при выполнении.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 13 марта 2009

Я думаю, что вы столкнулись с вариантом давнего ограничения в поставщике доступа к данным Excel. См. http://support.microsoft.com/default.aspx?scid=kb;EN-US;189897 для примера или google для тысяч других.

0 голосов
/ 13 марта 2009

Вместо того, чтобы пытаться использовать CAST (), вы пытались использовать функцию CONVERT ()?

...