Комментарии 36
ха-хабра-кат ;)
> Уже несколько дней бьюсь головой в монитор… :)
это помогает? ;)
> Уже несколько дней бьюсь головой в монитор… :)
это помогает? ;)
0
Помогать друг другу нужно! Но это не форум.
-3
MS SQL не знаю, но вот тут что-то про 8Кб и бинарные типы данных пишут.
www.basenow.com/help/Data_types_in_Microsoft_SQL_Server.asp
www.basenow.com/help/Data_types_in_Microsoft_SQL_Server.asp
0
Это они про varchar(8000) пишут. Там text, с которым работать сплошной геморрой…
0
Да, точно
0
Ой, отправилось уже
Там еще про ntext какой то пишут.
Там еще про ntext какой то пишут.
0
В 2005 вроде 2Гб.
0
Да, в 2005-м поле text может содержать данные до 2-х гб. Мало того, там еще есть varchar(max), аналогичный по сути. У нас стоит 2000 версия, в которой нет varchar(max), а поле text является таким же. Но это все хорошо, главное, что ответ возвращаемый пользователю не содержит всего того, что есть в БД.
0
Если я правильно понял, то в 2000 и сохранено может быть в одном текстовом поле макс. 8к данных? Если да, то по идее больше вернуть и не получится.
Taк же я прочитал (возможно не очень внимательно, потому может быть неверно), что данные передаются кусками маx. 8k? Если это верно, может запрос надо как то особо обрабатывать?
Taк же я прочитал (возможно не очень внимательно, потому может быть неверно), что данные передаются кусками маx. 8k? Если это верно, может запрос надо как то особо обрабатывать?
0
А Вы уверены, что Ваши данные хранятся на сервере?
Что показывает текущее выполнение запроса в EM?
Что показывает текущее выполнение запроса в EM?
0
Может поможет:
SET TEXTSIZE { number }: resets the @@TEXTSIZE function return value.
The maximum setting for SET TEXTSIZE is 2 gigabytes (GB), specified in
bytes.
SET TEXTSIZE { number }: resets the @@TEXTSIZE function return value.
The maximum setting for SET TEXTSIZE is 2 gigabytes (GB), specified in
bytes.
0
Не помогает, уже пробовал. :(
0
это читали? не про вашу проблему?
www.west-wind.com/weblog/posts/207.aspx
www.west-wind.com/weblog/posts/207.aspx
0
>>Сервер отдает данные полностью
то есть запрос в том же квери аналайзире все нормально отдает?
Хм, давно работал с ms sql 2000 через iis 6.0 — не было подобных проблем (правда через браузер, но думаю что проблема не в этом)
то есть запрос в том же квери аналайзире все нормально отдает?
Хм, давно работал с ms sql 2000 через iis 6.0 — не было подобных проблем (правда через браузер, но думаю что проблема не в этом)
0
+SELECT CONVERT(nvarchar(8000), mes_text) FROM news_text (nolock) WHERE mes_id = '%mes_id%' and source_code = 'Source1'
0
А почему бы не циклом отдавать по кусочку?
0
Как в sql-запросе сделать цикл?
0
DECLARE @len int, @pos int, @sort int, @buffsize int
SELECT @len=DATALENGTH(mes_text) FROM news_text (nolock) WHERE mes_id = '%mes_id%' AND source_code = Source1'
select @sort = 1, @pos = 0
declare @result (ne_text varchar(8000), sort int primary key clustered)
declare @buff varchar (8000)
while @pos < @len
begin
set @buffsize = 8000
if (@len — @pos < @buffsize)
@buffsize = @len — @pos
insert into @result (ne_text, sort)
SELECT SUBSTRING(mes_text, @pos, @buffsize) ne_text, 1 sort FROM news_text (nolock) WHERE mes_id = '%mes_id%' AND source_code = 'Source1'
set @pos = @pos + @buffsize
end
select * from @result
ну или что-то вроде этого
SELECT @len=DATALENGTH(mes_text) FROM news_text (nolock) WHERE mes_id = '%mes_id%' AND source_code = Source1'
select @sort = 1, @pos = 0
declare @result (ne_text varchar(8000), sort int primary key clustered)
declare @buff varchar (8000)
while @pos < @len
begin
set @buffsize = 8000
if (@len — @pos < @buffsize)
@buffsize = @len — @pos
insert into @result (ne_text, sort)
SELECT SUBSTRING(mes_text, @pos, @buffsize) ne_text, 1 sort FROM news_text (nolock) WHERE mes_id = '%mes_id%' AND source_code = 'Source1'
set @pos = @pos + @buffsize
end
select * from @result
ну или что-то вроде этого
+1
У меня была похожая проблема, только MS SQL не отдавал более 4кб, помогло вот что www.barsmedia.net/2008/03/19/mssql-odbc-php/
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Обрезка ответа на sql-запрос