Ver Mensaje Individual
  #1  
Antiguo 24-01-2011
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Reputación: 17
JosepGA Va por buen camino
Parametros en Consultas

Hola a todos,

pues mi duda es la siguiente, con Delphi 7 podía hacer lo siguiente al filtrar una consulta mediante parametros:

Código Delphi [-]
  With tArticulos Do
    Begin
      If Active Then
        Active := FALSE;

      With DataSet Do
        Begin
          CommandText := 'select CODIGO, DESCRIPCION FROM ARTICULOS WHERE ( CODIGO = :AUXCODART ) ORDER BY CODIGO';

          Params.ParamByName( 'AUXCODART' ).AsString := sArticulo;
        End;

      Active := TRUE;
    End;

Cada vez que la aplicaba me devolvia el registro del artículo solicitado, pero ahora con Delphi 2010 me encuentro que siempre se me quedaba en el primer artículo solicitado, los siguientes no los encontraba, haciendo muchas pruebas me encuentro de que en la propiedad "Params" del tSimpleDataSet ( No en la de tSimpleDataSet.DataSet.Params si no que en tSimpleDataSet.Params ) en tiempo de ejecución se han creado estos parametros, por lo que la solución es eliminarlo cada vez que se aplica la consulta para que funcione, quedando así:

Código Delphi [-]
With tArticulos Do
    Begin
      If Active Then
        Active := FALSE;

      Params.Clear;  /* ESTO ES LO QUE AÑADO */
      With DataSet Do
        Begin
          CommandText := 'select CODIGO, DESCRIPCION FROM ARTICULOS WHERE ( CODIGO = :AUXCODART ) ORDER BY CODIGO';

          Params.ParamByName( 'AUXCODART' ).AsString := sArticulo;
        End;

      Active := TRUE;
    End;

Ya se que he encontrado el problema, en Delphi 7 no me lo hacía, ¿ pero alguien me puede decir si esto tiene solución ? ¿ A que es debido este cambio ?
Responder Con Cita