Ver Mensaje Individual
  #16  
Antiguo 08-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
El commaText del memo o un stringlist no sirve.

Queremos (según mi código) que la consulta quede así:
Código SQL [-]
select * from tabla where codigo in ('codigo1', 'codigo2', 'codigo3');

Si usamos commatext, quedaría así:
Código SQL [-]
select * from tabla where codigo in (codigo1, codigo2, codigo3);
es decir, falta encerrar cada elemento entre comillas simples. Además commaText tiene el horroroso fallo (creo recordar) de usar tambien el espacio como separador de cadenas, así que al tiempo de recuperar los datos destrozaría el invento con un campo que se llame [Nombre Cliente] y si, uso corchetes ya que Access lo permite así.

Código Delphi [-]
var filtro : string;
begin
filtro := EmptyStr;
for i:= 0 to memo1.lines.count -1 do
  filtro := filtro + ','+QuotedStr(memo1.lines[i]);
delete(filtro,1,1);

query1.sql.text := 'select * from tabla where campo in ('+ filtro+')';
query1.Open;

EmptyStr es una constante, es idéntico a la asignación:
Código Delphi [-]
 filtro := '';
Pero el caso es que me gusta mucho el nombre de esa constante jejeje.

Cita:
El Segundo no corre, me aparece un error de compilacion en la línea que dice:
En el código de jhonny el error es que falta un signo de "+" después de la palabra "filtro" (además del comentado adoquerrrrrry jeje).

Debe decir:
Código Delphi [-]
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo = ('+ filtro+')';
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita