Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2011
kambiz kambiz is offline
Miembro
 
Registrado: jun 2004
Posts: 24
Poder: 0
kambiz Va por buen camino
Error con TAdoQuery Filter

Buenas,
Alguien podría decirme porqué el siguiente filtro en un TAdoQuery:
idBanc = 34 and idempresa = 6 and (Referencia = '0001/23-456 A' or Referencia = '1/23-456 A')
me da el siguiente error:
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros
Si elimino los parèntesis no da error, pero no hace lo que yo quiero.
La base de datos es Access. Ya sé que si pusiera el filtro en el where no tendría problemas, pero no puedo.
Muchísimas gracias.
Responder Con Cita
  #2  
Antiguo 12-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
idBanc = 34 and  idempresa = 6 and (Referencia = '0001/23-456 A') or (Referencia = '1/23-456 A')
Seria preferible que usaras parametros, te evitarias problemas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 13-03-2011
kambiz kambiz is offline
Miembro
 
Registrado: jun 2004
Posts: 24
Poder: 0
kambiz Va por buen camino
Gracias por responder, pero no es correcto
La instrucción tal como yo la planteo tienen que darse 3 condiciones:
- idBanc = 34 y
- idEmpresa = 6 y
- Referencia = '0001/23-456 A' or Referencia = '0001/23-456 A'

Tal como la has puesto tu, no da error, pero no cumple las tres condiciones.

Claro, estoy de acuerdo, mejor usar parámetros o usar el where. Pero no puedo. Es un programa complejo, escrito por otra persona, y cambiar la instrucción sql no sé las repercusiones que podría tener.
Responder Con Cita
  #4  
Antiguo 13-03-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
entonces debe ser mas o menos asi
nota los patentesis

Código Delphi [-]
(idBanc = 34) and  (idempresa = 6) and (Referencia = '0001/23-456 A' or Referencia = '1/23-456 A')

avisas si te funciono
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 13-03-2011
kambiz kambiz is offline
Miembro
 
Registrado: jun 2004
Posts: 24
Poder: 0
kambiz Va por buen camino
Tampoco funciona, y por más vueltas que le doy no lo entiendo
Responder Con Cita
  #6  
Antiguo 13-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Segun veo los dos primeros campos son integer y el tercero es texto.
Cuando se hace un filtro en access a un campo texto se necesita colocar ciertas condiciones.
Yo colocaria unas variables, si es que el dato no se saca por ejemplo de un edit, algo asi:

Código Delphi [-]
var 
Filtro, a, b : String;
begin
   a:= '1/23-456 A';
   b:= '0001/23-456 A';
   ADOQuery1.Filtered := False;
   Filtro := 'idBanc = 34 and  idempresa = 6 and  Referencia Like '''+a+'*'' OR Referencia Like '''+b+'*''';
   ADOQuery1.Filter := Filtro;
   ADOQuery1.Filtered := True
   end
   else 
   ADOQuery1.Filtered := False;
end;

Otra opcion:

Código Delphi [-]
var 
Filtro, a, b : String;
begin
   a:= '1/23-456 A';
   b:= '000'+a;
   ADOQuery1.Filtered := False;
   Filtro := 'idBanc = 34 and  idempresa = 6 and  Referencia Like '''+a+'*'' OR Referencia Like '''+b+'*''';
   ADOQuery1.Filter := Filtro;
   ADOQuery1.Filtered := True
   end
   else 
   ADOQuery1.Filtered := False;
end;

Hice algunas pruebas y funciona a la perfección.
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 13-03-2011 a las 02:40:36.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error en consulta sql TADOQuery hoguera Conexión con bases de datos 11 26-11-2008 13:15:00
En TADOQuery, con SELECT en algunas columnas da error. Me pide las otras Wonni Conexión con bases de datos 6 18-06-2007 15:23:34
filter vroa74 Conexión con bases de datos 3 06-03-2007 22:51:18
Uso de filter CONY Conexión con bases de datos 1 02-08-2006 22:48:23
Error con el Tadoquery jas010 SQL 2 03-03-2005 23:32:07


La franja horaria es GMT +2. Ahora son las 10:11:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi