Ver Mensaje Individual
  #3  
Antiguo 05-01-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
La cláusula IN en Firebird 1.5 tiene un límite de 1.500 elementos, puesto que dices da error en 100 o 200, creo es la forma de añadirlo al query.

No entiendo por qué accedes al SQL con índices (entre corchetes), no deberías pensar que tienes espacio en memoria asignado para trabajar con él. Dicho de otra forma, usa los métodos Add que tiene la propiedad sql.


Supongo que dicha restricción del where, lo haces en tiempo de ejecución, así que no tendrás problemas con los strings. Atención al "Add":
Código Delphi [-]
ClientDataSetCliente.Close;

QueryCliente.SQL.Add('Where (Cliente in (1,2,3,4,10,12))');
ClientDataSetCliente.open;
También podrías partir la cadena, incluso para hacerla más legible:
Código Delphi [-]
QueryCliente.SQL.Add('Where ');
QueryCliente.SQL.Add(' Cliente in (1,2,3,4,' );
QueryCliente.SQL.Add('              10,12)');

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita