Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
El código de Lepe lo que hace es concatenar en una sola variable los datos del memo separados por coma (,) y luego asignar a la propiedad Text del Query dichos valores para que los filtre; ahora bien, vos tenes lo siguiente:

Código Delphi [-]
 
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo = ('+ filtro')';

y debe ser

Código Delphi [-]
 
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo in ('+ filtro')';

Fijate en que estas usando el "=" mientras que en el ejemplo de Lepe esta muy claro que debes usar el "in" para buscar en el conjunto de datos alimentado desde la variable de texto llamada "filtro".

En cuanto a la linea que tienes duda:

Código Delphi [-]
 
filtro := EmptyStr;

Esa es una manera de inicializar la variable.

Espero te sirva de algo la explicacion.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #2  
Antiguo 07-02-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
a ver... aquí necesitan ponerse las pilas y abrir bien los ojos. No se me desesperen que esto es lo sencillo, mantenga la cabeza fria y ponga antención a lo que estan escribiendo.
Código Delphi [-]
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo in ('+ filtro+')';

En la segunda, según tu excepción, el problam esta en el ADOQuerry... será porque es ADOQuery con una "r", no con dos.
__________________

Responder Con Cita
  #3  
Antiguo 08-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Claro ContraVeneno debe tener razon , despues de todo aqui si hay un verdadero mentalista
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 08-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
A ver si me entrometo un poquito, por favor corrijanme.
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
   ADOQuery1.Close;
   ADOQuery1.SQL.Text:= 'Select * From TuTabla';
   ADOQuery1.Open;
end;
En un boton:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.Filter := 'TuCampo = '+QuotedStr(memo1.lines[0]);
  ADOQuery1.Filtered := True;
end;
Filtra el contenido de la primera linea del memo?
Ahora lo que no me explico es para que se necesita colocar la informacion primero en un memo y luego en el dbgrid y no de una vez?
Sera para darle un vistazo previo?
Saludos
Responder Con Cita
  #5  
Antiguo 08-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Caral
Ahora lo que no me explico es para que se necesita colocar la información primero en un memo y luego en el dbgrid y no de una vez?

Al principio me pregunte lo mismo pero me respondí solito... Quizá sea porque alguna persona exporta los códigos desde otra aplicación a txt y es ese txt el que el programa de nuestro compañero MikyVato debe leer y compararlo con la base de datos para guardar algún tipo de trazabilidad en los datos de manera pues que queden coherentes.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 08-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
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
  #7  
Antiguo 08-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Es gracioso como un codigo sencillo nos haga cometer tantos errorsillos de sintaxis

Cita:
Empezado por Lepe
Debe decir:

Código Delphi [-]
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo = ('+ filtro+')';
Si te fijas bien en el codigo sql que acabas de colocar haz cometido tambien un errorsillo de sintaxis y es que en lugar de "=" debe ir "in" , y debe ser asi:
Código Delphi [-]
ADOQuerry.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo in ('+ filtro+')';

Y bueno aun asi podria seguir un error, en caso de que el ADQuerry en realidad si este mal escrito
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 08-02-2007 a las 15:00:03.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como puedo empezar a desarrollar Neiro Internet 2 10-10-2006 16:14:24
¿Como empezar bien? MakinaX Varios 1 03-06-2006 12:30:13
Como empezar con Delphi??? @padawan@ Varios 3 11-01-2006 18:02:47
Comó empezar con Quick Report lucasarts_18 Impresión 2 16-04-2005 19:20:09
Como empezar una aplicación web rfernandez Internet 2 10-01-2004 01:38:05


La franja horaria es GMT +2. Ahora son las 00:20:03.


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