Gracias de antemano por leer este item.
La solución era super sencilla, a pesar de que es un parametro de salida, siempre se le tiene que asignar un valor, la verdad me he leido tantos hilos en este foro y en internet tantas paginas que ya me estaba desesperando, el código, la linea de solución es:
Código Delphi
[-]
with Datos.DatosDM.PrincipalADOStoredProc do
begin
Close;
Parameters.Clear;
Parameters.ParseSQL('ProductoInsertar',TRUE);
ProcedureName := 'ProductoInsertar';
Parameters.CreateParameter('@Nombre',ftString,pdInput,100,0); .......
Parameters.CreateParameter('@Id_Parametro_Acabado',ftInteger,pdInput,0,0); Parameters.CreateParameter('@MiMensaje',ftString,pdOutput,100,0); Parameters.Refresh;
Parameters.ParamByName('@MiMensaje').Value := '';
Parameters.ParamByName('@Nombre').Value := self.NombreEdit.Text; Parameters.ParamByName('@Costo').Value := StrToFloat(self.CostoEdit.Text);
También el refresh, me ayudo bastante, les recomiendo usarlo.
Gracias nuevamente, si alguien sabe usar el Parameter.ParseSql por fa, explíquenme por favor para que sirve que me he quedado con la duda.
Saludos.