Hola:
Gracias por tu sugerencia Delphi.com.ar, esto es lo que he realizado:
1) He modificado el código delphi que ejecuta el TADOStoreProcedure que actualiza la Tabla, quedando así:
Código Delphi
[-]
procedure TfrmInformes.frmBtnsbtnPostClick(Sender: TObject);
var
AStream: TStream;
begin
with DM.SProc do begin
Active := False;
ProcedureName := 'InformesMOD;1';
Parameters.Refresh;
Parameters.FindParam('@IDInforme').Value := DM.InformesVERIDInforme.Value;
AStream := TMemoryStream.Create;
try
edRMemo.Lines.SaveToStream(AStream);
Parameters.FindParam('@Texto').LoadFromStream(AStream, ftBlob); finally
AStream.Free;
end;
if not Prepared then Prepared := True;
ExecProc;
end;
end;
Nota: He eliminado lineas para que sea mas claro
2) Tambien he modificado el procedimento del MS SQL Server 2000, según las sugerencias técnicas para la Administración de datos nText, Text e Image, quedando finalmente así:
Código SQL
[-]
CREATE PROCEDURE InformesMOD
@IDInforme int,
@Letrado Char(4),
@Resumen nChar(80),
@Adjuntos Char(200),
@FEnvio SmallDateTime,
@Texto ntext,
@Proxima smalldatetime,
@ARealizar nChar(100)
AS
BEGIN TRAN
DECLARE @PtrVal binary(16)
UPDATE Informes
SET Letrado = @Letrado,
Resumen = @Resumen,
Adjuntos = @Adjuntos,
FechaEnvio = @FEnvio,
ProximaAccion = @Proxima,
Texto = @Texto,
ParaHacer = @ARealizar
WHERE IDInforme = @IDInforme
EXECUTE sp_dboption 'Informes', 'select into/bulkcopy', 'TRUE'
SELECT @PtrVal = TEXTPTR(Texto)
FROM Informes
WHERE IDInforme = @IDInforme
UPDATETEXT Informes.Texto @PtrVal 0 NULL @Texto
EXECUTE sp_dboption 'Informes', 'select into/bulkcopy', 'FALSE'
IF @@ERROR = 0
COMMIT TRAN
ELSE
ROLLBACK TRAN
GO
Nota: Este procedimiento está completo, se pasan todos los parámetros.
3) Al ejecutarlo me da el siguiente error:
"Espacio de almacenamiento insuficiente para completar la operación"
Y hasta aquí he llegado y no sé como seguir, agradecería cualquier sugerencia.
Muchas gracias.