Ver Mensaje Individual
  #1  
Antiguo 07-07-2005
atirado atirado is offline
Miembro
 
Registrado: mar 2004
Posts: 41
Reputación: 0
atirado Va por buen camino
Question ADO con Locate sólo busca 1 campo y necesito 2 :(

Hola a tod@s!
Les escribo porque he buscado información al respecto, pero nada parece funcionar, y ya que aquí es como la escuela Jedi de lo relacionado con Delphi, creo que podrán ayudar a este pobre padawan en desgracia
La cuestión es esta:
Estoy usando componentes ADO para guardar información en una tabla de Access XP donde se guardan tarifas de envíos, en dicha tabla se guarda un identificador de la ciudad destino, el costo de acuerdo a la clase del envío y una fecha que indica cuándo entra en vigor la tarifa.
Por lo anterior, antes de grabar un nuevo registro necesito verificar que no haya otro registro que tenga esa fecha con ese identificador de ciudad.
Es decir, si ya tengo lo siguiente:

Código:
IdCiudad | Costo | Fecha
	1	   |   100  | 05/07/2005
con esto ya no debería permitirme grabar otra vez el IdCiudad = 1 con Fecha = '05/07/2005', ¿cierto?
Ok, intento hacer la validación de la siguiente manera:
Código Delphi [-]
If not tblTarifasPorCiudad.Locate('idciudad;fecha', VarArrayOf([vIdCiudad, dtpFecha.DateTime]), [loCaseInsensitive]) then
     Grabar
Else
     ShowMessage('El registro ya existe');
donde tblTarifasPorCiudad es la tabla de tarifas de Access XP. La fecha la obtiene de un DateTimePicker llamado dtpFecha.
Al parecer, el método Locate sólo funciona si utilizo un campo para hacer la búsqueda, sólo que en este caso, necesito que lo haga por 2 campos diferentes, pues sí puede haber repetidos en IdCiudad, ya que con el tiempo se crea otro registro con una fecha y un costo diferente, pero nunca se eliminan los anteriores, de la siguiente manera:
Código:
IdCiudad | Costo | Fecha
	1	   |   100  | 05/07/2005
    1       |   110  | 01/08/2005
Alguien tiene alguna luz en este camino de oscuridad??? Que la fuerza les acompañe, jejeje
Responder Con Cita