Ver Mensaje Individual
  #4  
Antiguo 06-06-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Post

Tienes que hacerlo sobre el mismo query en dos veces, uno para la llamada al procedimiento y otro para el propio SELECT, intentalo de esta forma, a mi así, si me funciona :

Código Delphi [-]
    ZQuery1.sql.Clear;
    zquery1.SQL.Add('CALL ver(:codigo,@precio,@articulo)');
    zQuery1.ParamByName('codigo').value := '111';
    zQuery1.ExecSQL;

    ZQuery1.sql.Clear;
    zquery1.SQL.Add('SELECT @precio,@articulo');
    zquery1.open;


Por otra parte y haciendo algunas pruebas para intentar hacerlo directo, utilice los parámetros del propio query (1 de entrada y 2 de salida).
Pero me he topado con cierto bug ya documentado de ZEOS, en cuanto al tema de los parámetros, y en particular da el error: Input parameter count is less then expected y parece venir desde la versión 6.X.
Aqui se habla del tema
http://zeoslib.sourceforge.net/viewtopic.php?t=2979
http://zeoslib.sourceforge.net/viewtopic.php?t=9357
y este sería el código que genera el error:

Código Delphi [-]
  zquery1.SQL.Add('CALL ver(:codigo, recio,:articulo)');
    ParamByName('codigo').ParamType := ptInput;
    zQuery1.ParamByName('codigo').value := '111';
    ParamByName('precio').ParamType := ptOutput;
    ParamByName('articulo').ParamType := ptOutput;
    zQuery1.ExecSQL; //<-- aqui salta el error
    ShowMessage(ParamByName('articulo').AsString);


Aunque parece que ya han sacado algún parche para solucionarlo, en mi caso en particular estoy utilizando la version 7.2.1-rc y en ella aún sigue saliendo dicho error.
Responder Con Cita