Ver Mensaje Individual
  #1  
Antiguo 07-09-2012
liito16 liito16 is offline
Miembro
 
Registrado: ago 2010
Posts: 34
Reputación: 0
liito16 Va por buen camino
Problema con procedimiento almacenado (dbexpress)

Hola que tal, foro de clubdelphi, queria pedirle ayuda:
- Uso delphi xe2
- Mysql
- Dbexpress

- Uso un modulo de datos( querys, dataset), y utilizo por el lado del formulario (providers, clientdataset, datasource.)

estoy usando el componente SQLstoredproc y nose como hacerlo funcionar, coloco la conexión, y en Storedprocname=validar (así se llama el procedimiento )

les coloco el procedimiento. que es como validar un usuario si existe y me devuelve un valor 0 o 1 en caso de que exista, para poder entrar al sistema.
Código SQL [-]
CREATE PROCEDURE `bd_ventas`.`validar` (in user varchar(10),  
                in clave varchar(6),
              out res int)
BEGIN
         DECLARE resultado int;
    select @res
    from usuarios
    where nom_user=user and key_user=clave;
    if resultado is null then
      set res=1;
    else
      set res=0;
    end if;

END

la cosa es que cuando hago todo, se activan los parametros y lo que ago es del lado del formulario en clientdataset (creo los parametros) y
utilizo este codigo:

Código Delphi [-]
procedure Tfrm_validar.btn_validarClick(Sender: TObject);
var res:integer;
begin
    if (edt_nombre.Text<>'') AND (edt_clave.Text<>'') then
    begin
      with cli_validar do
      begin
          Close;
          Params.ParamByName('user').Value:=edt_nombre.Text;
          Params.ParamByName('clave').Value:=edt_clave.Text;
          Open;
          res:=Params.ParamByName('res').Value; (esto nose si esta bien escrito, quiero capturar el resultado del procedimiento. para evaluar si es 0 o 1)
      end;
    end;
end;

end.

los errores que me tira son: invalid parameter, y otro return mause algo asi.
eh, buscado y leido un monton pero no encuentro la solucion. lo pongo aca porque es delphi.

Desde ya muchas gracias.
Responder Con Cita