Ver Mensaje Individual
  #1  
Antiguo 08-01-2011
Avatar de GerTorresM
GerTorresM GerTorresM is offline
Miembro
 
Registrado: nov 2005
Ubicación: Tunja - Boyacá
Posts: 210
Reputación: 21
GerTorresM Va por buen camino
Red face Consultas con párametros

Hola a tod@s:


la situación que se me presenta en el día de hoy es la siguiente:

Estoy haciendo mantenimiento a una aplicación desarrollada utilizando delphi 6 y que emplea BDE, en orden de ideas el mantenimiento me lleva a aplicar la utilización de consultas con parámetros; hasta ahí no hay nada nuevo ni que lamentar, tan solo lo siguiente:

debe utilizar parámetros dentro de una instrucción In del SQL, el código es el siguiente:

Código Delphi [-]
  QTarifas_local:= CrearConsulta;
  QTarifas_local.OnCalcFields:= QTarifas_localCalcFields;
  Qtarifas_local.SQL.Text:= ' SELECT Tarifas.Zona, Tarifas.CodigoTipoServicio, Tarifas.Estrato '+
                            ' FROM  Tarifas ' +
                            ' Where CodigoAno =CodigoAno '+
                            ' And CodigoPeriodoPago =CodigoPeriodo ' +
                            ' And CodigoTipoServicio =CodigoTipoServicio'+
                            ' And Zona =Zona ' +
                            ' And Tarifas.CodigoServicio in (CodigoServicio)' +
                            ' GROUP BY Tarifas.Zona, Tarifas.CodigoTipoServicio, Tarifas.CodigoServicio, Tarifas.Estrato ';

ahora sigo como la alimento

Código Delphi [-]
    with QTarifas_local do
      begin
        Close;
        ParamByName('pCodigoAno').AsInteger:= StrToInt(Self.edtTarifaAno.Text);
        ParamByName('pCodigoPeriodo').AsInteger:= Self.dblkcbbCodigoPeriodoPago.KeyValue;
        ParamByName('pCodigoTipoServicio').AsInteger:= Self.dblkcbbCodigoTipoServicio.KeyValue;
        ParamByName('pZona').AsInteger:= Self.dblkcbbZona.KeyValue;
        ParamByName('pCodigoServicio').AsString := '4,5';
        try
         Open;
        except on e: Exception do
          ShowMessage(e.Message);
        end;
      end;

y al ejecutarlo obtengo el siguiente mensaje de error

General SQL error
Data Type mismatch in criteria expression.


En un principio pense que habia algun error en la forma en la que estaba escrita la consulta y la probe por fuera dgitado la sentencia de SQL y corriendola; a continuación elimine cada parámetro encontrando que el error provenía del parámtero en string.

Entonces la pregunta es como puedo ingresar este tipo de parámteros en la consulta ?



Agradezco de antameno la colaboración que me puedan prrestar



gertorresm
Colombia
Responder Con Cita