Запрос ODBC на SQL Server MS, возвращающем сначала 255 символов только в PHP PDO (FreeTDS)

Я в настоящее время пытаюсь вытянуть некоторые данные из представления базы данных SQL Server, что у нас есть ограниченный доступ к от нашего веб-сервера Linux.

Мы не должны редактировать данные, просто отображают его на веб-странице.

Все это выглядит хорошо, пока мы не пытаемся произвести и только получить первые 255 символов текстового поля.

Делает любой знает, является ли это проблемой с использованием FreeTDS через PHP:: PDO или если это должно хорошо работать? Я видел других людей, там имеющих подобные проблемы, но там, кажется, не много ответов.

Я использую это в качестве строки подключения для дб SQL MS:

$dbConn = new PDO("odbc:Driver=FreeTDS;DSN=OURDSN;UID=WWWUser;PWD=ourpassword");
6
задан Del 9 March 2010 в 14:48
поделиться

2 ответа

Согласно Руководству пользователя FreeTDS, проблема, похоже, в том, что FreeTDS может обрабатывать varchar только до 255 символов при общении с SQL Server "из-за ограничений, присущих определению протокола". Все, что больше этого, должно иметь тип данных text.

Вы можете решить эту проблему, либо изменив схему соответствующим образом, либо преобразовав тип данных во время запроса, например, так:

SELECT CAST(mycol as TEXT) FROM mytable
8
ответ дан 9 December 2019 в 22:32
поделиться

Вы можете увеличить размер текстовых полей в файле /etc/odbc.ini, используемом FreeTDS.

[name_of_connection]
TextSize = 2097152

Вы также можете попробовать использовать процедуры PHP odbc низкого уровня, чтобы убедиться, что вы можете получить этот уровень извлечения данных, а затем вернуться к использованию PDO.

2
ответ дан 9 December 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: