Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Леха Велигжанин Гость
|
Добавлено: Пт Апр 09 2004 09:43 Заголовок сообщения: PHP+MSSQL: проблемы с image |
|
|
Уважаемые!
Не подскажете ли случаем решение такой проблемы - в MSSQL2000 есть таблица с полями image. Php должна отображать данные оттуда на страничку, но выдает только кусок информации длиной 4096 байт.
Что характерно, Asp все то же делает замечательно.
Не подскажете, какие настройки надо подкрутить?
P.S. Страничка должна быть на php - от меня это не зависит. |
|
Вернуться к началу |
|
|
alexkr Гость
|
Добавлено: Чт Апр 22 2004 09:59 Заголовок сообщения: |
|
|
в php.ini смотри output_buffering стоит 4069 так думаю оттуда ветер.
заодно вопрос при установки форума не устанавливается подключение к базе стоит IIS MSSQL тесты проходят т.е РНР работает,
ODBC конектится |
|
Вернуться к началу |
|
|
stvaa Гость
|
Добавлено: Пт Апр 23 2004 08:23 Заголовок сообщения: |
|
|
Не, увеличение output_buffering не проходит. Все равно выдает те же 4096.
Есть мысль, что это глюки самого php - он у меня под виндой, так что видимо кривоват. Если соединяться с БД с юниксового сервера - никаких проблем.
А вопрос я не очень понял.
Когда я подсоединялся к серверу, тоже долго совершал пляски с бубном, но потом все заработало.
Попробуй взять какой-нибудь пример с php.net. |
|
Вернуться к началу |
|
|
Антон (ram) Гость
|
Добавлено: Пт Апр 23 2004 13:42 Заголовок сообщения: Re: PHP+MSSQL: проблемы с image |
|
|
Леха Велигжанин писал(а): | Уважаемые!
Не подскажете ли случаем решение такой проблемы - в MSSQL2000 есть таблица с полями image. Php должна отображать данные оттуда на страничку, но выдает только кусок информации длиной 4096 байт.
Что характерно, Asp все то же делает замечательно.
Не подскажете, какие настройки надо подкрутить?
P.S. Страничка должна быть на php - от меня это не зависит. |
По умолчанию максимальный размер информации выдаваемый оператором select выставляется в 4 Кб - ваши 4096 байта.
Этот размер можно поменять командой: SET TEXTSIZE <число - определяющее максимальный размер вывода оператора select в байтах>.
то есть SET TEXTSIZE 2097152 установит максимальный размер вывода оператора select в 2Mb.
Размер можно указывать только числом. Такое не пройдет:
SET TEXTSIZE @tmpsize
где @tmpsize целочисленная переменная.
Текущий максимальный размер вывода оператора select содержиться в системной функции @@TEXTSIZE. Соответственно посмотреть его можно например так: select @@TEXTSIZE
P.S. Обратите внимание.
create procedure sp_test
as
set textsize 2097152
execute ('select image_file from test where image_file_id=3');
go
Если select возвращает информации больше чем 4kb, то всё равно результатом выполнения этой хранимой процедуры будут данные размер которых не превышает 4kb, так как команда execute выполняется как отдельная хранимая процедура (точнее. batch) и максимальный размер информации выдаваемый оператором select выставляется опять в 4 Кб.
Вот эта процедура я думаю позволить вывести информацию большую чем 4кб.
create procedure sp_test
as
set textsize 2097152
execute ('set textsize 2097152; select image_file from test where image_file_id=3');
go
И ище, не выставляйте слишком большой размер TEXTSIZE. По-крайней мере он не должен быть больше чем размер отводимой по скрипт памяти, кажется опция memory_limit в php.ini
Ну вот кажется всё. Если помог скажите хоть спасибо. |
|
Вернуться к началу |
|
|
stvaa
Зарегистрирован: 23.04.2004 Сообщения: 12 Откуда: Москва
|
Добавлено: Вт Апр 27 2004 19:18 Заголовок сообщения: |
|
|
Спасибо, конечно, за столь подробные обьяснения.
Тем не менее, работает это почему-то не всегда. То бишь, если запросы слать через PHP в FreeBSD - помогает, PHP под windows - не помогает, а через ASP вообще безо всяких "SET TEXTSIZE=" работает.
Такой вот парадокс.
Ну, либо руки кривые. |
|
Вернуться к началу |
|
|
|