Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
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
  #2  
Antiguo 08-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
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
  #3  
Antiguo 08-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
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
  #4  
Antiguo 08-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
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
  #5  
Antiguo 08-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
jhonny es que nuestro[modo EGO=on] nivel de abstracción es muy elevado... eso son nimiedades[/modo EGO=off]

En serio, este tipo de errores son los que nos vuelven locos, siempre pensamos que son otras cosas de más envergadura.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 08-02-2007
MikyVato MikyVato is offline
Miembro
 
Registrado: mar 2005
Posts: 39
Poder: 0
MikyVato Va por buen camino
Vaya, el Error del principio es tipografico pero esta solo en el Foro, tanto el "=" como el Querry, voy a colocar el código tal cual lo tengo en mi Soft (Nada como Copiar y Pegar)

Código Delphi [-]
var
 filtro:string;
 i:integer;
begin
   filtro := EmptyStr;

   if OpenArch.Execute then
     begin
       MArch.Lines.LoadFromFile(OpenArch.FileName);
       MArch.Enabled := False;
     End;
   
   for i:=0 to MArch.Lines.count -1 do
      filtro := filtro +', '+QuotedStr(MArch.lines[i]);
   delete(filtro,1,1);

   DMRomaneo.ADOQArticulos.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo in ('+ filtro+')';
   DMRomaneo.ADOQArticulos.Open;
end;

Tiene que ir en el MEMO por una cuestion de Control, es como dice jhonny, el TXT es generado por otro porg y debe ser comparado con la DB.

Esto es solo a modo aclarativo ya que los primeros errores mensionados ya estan solucionados, faltaba el signo "+" al final, una vez solucionado mi prog corre pero larga un error de ODBC

"no coinciden los tipos de datos en la Expresion de criterio"

Creo que se refiere a que los campos de la Tabla no coinciden, pero lo he verificado y la verdad coinciden hasta con las letras mayusculas, o es por que los tipos no coinciden integer y otro tipo string??

Prometo prender belas y colgar mi proyecto en este hilo solo tiene que funcionar............

Gracias Totales x la buena Onda
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.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por MikyVato
o es por que los tipos no coinciden integer y otro tipo string??
Tu lo haz dicho , en ese caso debes quitar las comillas sencillas del codigo otorgado por Lepe osea que la cosa quedaria asi (Y espero no equivocarme de nuevo en la sintaxis ):

Código Delphi [-]
for i:=0 to MArch.Lines.count -1 do
      filtro := filtro +', '+MArch.lines[i];
   delete(filtro,1,1);
   DMRomaneo.ADOQArticulos.SQL.Text := 'select Codigo,Descripcion from Articulo where Codigo in ('+ filtro+')';
   DMRomaneo.ADOQArticulos.Open;
__________________
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 21:07:27.
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
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 02:43:16.


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