Недавно я решил проблему, которая возникала в приложении VB6 при сохранении больших двоичных объектов на сервере sql с использованием ADO 2.8 и метода AppendChunck для Recordset.Field. Если бы данные были слишком большими, я бы получил либо «Invalid Handle» в цикле for, либо «недостаточно системного хранилища для выполнения этой операции». Я исправил проблему, отправив куски в хранимую процедуру и используя «updatetext». Тем не менее, теперь я могу отправлять только 8 тысяч символов одновременно из-за ограничения 8 тысяч. Кто-нибудь знает хороший обходной путь? Ниже мой sproc.
@chunck binary(8000),
@result_id int
as
declare @pointer binary(16),
@imagelength int,
@datalength int
--get the pointer and length to the image column
select @pointer = textptr(result_image),
@imagelength = datalength(result_image)
from dbo.dash_result
where result_id = @result_id
if @pointer is null
update dbo.dash_result
set result_image = @chunck
where result_id = @result_id
else
begin
--append the chunck of data to the end
set @datalength = datalength(@chunck)
updatetext dbo.dash_result.result_image @pointer @imagelength 0 @chunck
end