Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
como mostrar un query en un dbgrid?

hola gente de clubdelphi

estoy creando una aplicacion en delphi pero necesito mostrar una tabla de una base de datos, !pero no mostrar todos los registros!, solo necesito que aparezcan los registros que concuerden con una palabra que voy a ir escribiendo en un edit

por ejemplo

escribo lamp

y me muestra todo lo que contenga lamp

lampara fluorecente
lampara para fotocopiadora
lampara para escaner

etc

pero no se como mostrar solo el query

tengo un adoconection, un adotable, un adoquery, un datasource y un dbgrid

si conecto el dbgrid al datasource salen todos los registros, pero eso no es lo que quiero, solo quiero mostrar lo que contenga lo que se valla escribiendo en el edit.

cordialmente
carlos german jaraba camacho

posdata, la tabla solo tiene una columna que se llama articulo. lo he hecho asi para simplificar pero una vez capte la idea lo tratare de hacer algo mas complejo y si no me sale pues a preguntar! feliz dia

se me olvidaba uso sql 2005 para almacenar la base de datos!

Última edición por carlosjaraba fecha: 08-11-2011 a las 14:04:17. Razón: me falto dar informacion necesaria
Responder Con Cita
  #2  
Antiguo 08-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carlos y bienvenido a los foros de Club Delphi.

Como a todos los que escriben en los foros por vez primera, te invitamos a que leas nuestra Guía de estilo

Sobre tu consulta, revisá este enlace

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Thumbs up

Carlos: creo que el datasource debe hacer referencia al ADOQuery, no al ADOTable

yo uso interbase y los componentes son similares. En mi caso la busqueda parcial la realizo asi:

Buscar es un IBQuery
Ape es la variable que toma el valor del TEdit e incluyo las propiedades Upper para que no diferencie entre mayusculas y minusculas.... ahh el #39 es la ' ;

Código Delphi [-]
Buscar.sql.clear
Buscar.SQL.Add('SELECT ID,NHIST,APELLIDOS,NOMBRE,NDOC,FULTCONSULTA FROM PACIENTES where Upper(APELLIDOS) like '+#39+'%'+UpperCase(Ape)+'%'+#39;
Buscar.active := true;

En tu caso seria la instruccion SQL:
Código Delphi [-]
     Select articulo FROM NOMBRE_TABLA where Upper(Articulo) like ''%UpperCase('lamp')%"
el like es para que busque parcialmente.

Espero haberte ayudado y mas aun haber entendido tu pregunta.. Saludos

Última edición por Casimiro Notevi fecha: 09-11-2011 a las 10:34:42.
Responder Con Cita
  #4  
Antiguo 09-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelph, MartinSi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

Recuerda poner etiquetas al código, ejemplo:



.
Responder Con Cita
  #5  
Antiguo 10-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
Thumbs up muchas gracia

muchas gracias amigos, ya lo estoy probando cuando tenga un resultado les escribo a ver como me fue!!
Responder Con Cita
  #6  
Antiguo 10-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
Thumbs up todavia me falta.

buenos dias, el codigo que adapte es el siguiente

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text <> '' then
with ADOQuery1 do
begin
Close;
SQL.Text:= 'SELECT modelo, insumo, compatible FROM compatibilidad'+
' WHERE modelo LIKE '+QuotedStr(edit1.Text+'%');
Open;
end;

pero solo aparecen bien cuando comienzan por lo que estoy escribiendo. hasta ahi todo bien pero por la naturaleza de lo que estoy buscando es recomendable que en la busqueda aparezca lo que contenga no que estoy escribiendo no importa en que parte de la palabra lo contenga

osea para dar un ejemplo

si escribo az en el edit me tienen que aparecer

folder azul
pintura azul
folder az organizador

etc.

les agradeceria si me pueden ayudar hasta ahora ya es un avance porque antes no tenia ni idea de que hacer!!! gracias por compratir todo su conocimiento gratis Dios se lo multiplique!!
Responder Con Cita
  #7  
Antiguo 10-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tal y como te dije antes, recuerda poner el código entre etiquetas para que se vea correctamente, gracias.

Responder Con Cita
  #8  
Antiguo 10-11-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
Cita:
Empezado por carlosjaraba Ver Mensaje
buenos dias, el codigo que adapte es el siguiente

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text <> '' then
with ADOQuery1 do
begin
Close;
SQL.Text:= 'SELECT modelo, insumo, compatible FROM compatibilidad'+
' WHERE modelo LIKE '+QuotedStr(edit1.Text+'%');
Open;
end;

pero solo aparecen bien cuando comienzan por lo que estoy escribiendo. hasta ahi todo bien pero por la naturaleza de lo que estoy buscando es recomendable que en la busqueda aparezca lo que contenga no que estoy escribiendo no importa en que parte de la palabra lo contenga

osea para dar un ejemplo

si escribo az en el edit me tienen que aparecer

folder azul
pintura azul
folder az organizador

etc.

les agradeceria si me pueden ayudar hasta ahora ya es un avance porque antes no tenia ni idea de que hacer!!! gracias por compratir todo su conocimiento gratis Dios se lo multiplique!!
intenta esto en el where
Código SQL [-]
 
WHERE modelo LIKE '+QuotedStr('%' + edit1.Text+'%');
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 10-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Eso es, te esta faltando el % delante del Edit para que te muestre lo buscado en cualquier lugar. Repito en ocasiones es bueno usar las clausulas upper para SQL y UpperCase en Delphi para que convierta todo a mayusculas para realizar las comparaciones. Esto no modifica la visualizacion solo la busqueda ya que AS, aS, As o as son distintos para SQL. Saludos
Responder Con Cita
  #10  
Antiguo 10-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por MartinS Ver Mensaje
.. ya que AS, aS, As o as son distintos para SQL. Saludos
¿A qué base de datos te refieres?
Responder Con Cita
  #11  
Antiguo 10-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
ahhh... yo uso Firebird. y las busquedas las debo hacer asi porque solo me muestra los caracteres como los ingreso haciendo distincion entre mayusculas y minusculas (As es mi cadena de busqueda, no la instruccion). Pense que era para todas las bases que usan sentencias SQL igual...
Responder Con Cita
  #12  
Antiguo 10-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También uso firebird, creo que no he entendido bien lo que has dicho, con "(As es mi cadena de busqueda, no la instruccion)"
¿Quiéres decir que si estás buscando 'as' con like, debes escribirlo tal y como esté grabado, mayúsculas o minúsculas?, entonces... sí, es así.
Hay una forma de buscar sin importar mayúsculas/minúsculas, es usando 'containing', ejemplo:

Código SQL [-]
select Codigo, Nombre, Telefono from tbClientes where Nombre containing 'as'

En ese caso devolverá todos los as, AS, As, aS, etc.
Responder Con Cita
  #13  
Antiguo 10-11-2011
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Exacto casimiro... ahi se nota entonces la diferencia de mi SQL de 1 mes de uso vs tu experiencia jajaja... habia visto por algun lado el tema del containing pero no sabia para que usarlo... Saludos...

PD espero que Carlos no se haga mucha ensalada con esto
Responder Con Cita
  #14  
Antiguo 11-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
Smile y para grabar un registro nuevo?

amigos, hasta ahora todo excelente nunca podría haber salido mejor todo funciona a full pero tengo una preguntica

hasta ahora para agregar campos a la tabla me ha tocado entrar por el sql y escribirlos en la tabla directamente como seria para grabar los capos desde la misma aplicación? iniciando porque mi dbgrid quiero que sea de solo lectura (y así lo tengo) pues puse que saliera un nuevo frame con los edits suficientes para escribir los nuevos campos. me podrían hacer el favor de decirme como agregar una nueva fila ? se los agradecería de todo corazón

bueno, encontre esto en los foros
Código Delphi [-]
With query1 do
begin
  Sql.Text:='Insert into tabla (campo1,campo2) values(:variable1,:variable2)';
  ParamByName('variable1').AsString:='blablablabla';
  ParamByName('variable2').AsInteger:=543;
  ExecSql;
end;
pero no veo los edits por ningún lado como seria en ese caso??

Última edición por ecfisa fecha: 11-11-2011 a las 15:49:15. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #15  
Antiguo 11-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carlos.

Pero si ya lo tenés cocinado...
Código Delphi [-]
  With query1 do
  begin
    Sql.Text:='Insert into tabla (campo1,campo2) values(:variable1,:variable2)';
    ParamByName('variable1').AsString:= Edit1.Text;
    ParamByName('variable2').AsInteger:= IntToStr(Edit2.Text);  // (*) 
    ExecSql;
  end;
(*)En el caso de un campo numérico, también se puede hacer:
Código Delphi [-]
  ParamByName('variable2').AsString:= Edit2.Text; 
  //o  
  ParamByName('variable2').Value:= Edit2.Text;
Siempre, claro está, que estes seguro que el contenido de Edit2.Text sea un valor convertible al tipo de número esperado. Si nó, recibirás un error de conversión.


Edito:
Ya me olvidaba... Por favor, usa TAG's para encerrar el código que adjuntes a tu mensaje:



Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-11-2011 a las 15:51:48. Razón: Agregar comentario
Responder Con Cita
  #16  
Antiguo 11-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
Thumbs up

amigos, todo parecia ir muy bien hasta que me tope con lo siguiente
me sale un error

undechlared identifier ParamByName
undechlared identifier AsString

este es mi codigo

por fin cai en cuenta de lo de ponerle el tag yo quedaba


Código Delphi [-]
With ADOQuery1 do
  begin
    Sql.Text:='Insert into COMPATIBILIDAD (MODELO,INSUMO,COMPATIBLE) values(:variable1,:variable2,:VARIABLE3)';
    ParamByName('VARIABLE1').AsString:= EDTMODELO.Text;
     ParamByName('VARIABLE2').AsString:= EDTINSUMO.Text;
      ParamByName('VARIABLE3').AsString:= EDTCOMPATIBLE.Text;

    ExecSql;
  end;
Responder Con Cita
  #17  
Antiguo 11-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Es que con un TADOQuery, sería:
Código Delphi [-]
 ADOQuery1.Parameters.ParamByName('VARIABLE1').Value:= Edit1.Text;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 11-11-2011
carlosjaraba carlosjaraba is offline
Registrado
 
Registrado: jul 2008
Posts: 6
Poder: 0
carlosjaraba Va por buen camino
Thumbs up Finalmente Completo El Proyecto!

muchas gracias amigos de clubdelphi sin su ayuda estaría perdido


todo solucionado. lo que escribieron todo funciona y a todas las preguntas le dieron respuestas!!!!
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 enlazar un query con un dbgrid jact SQL 13 15-11-2007 03:25:45
como mostrar campo BLOB en un DBGrid jmlifi Varios 1 10-08-2005 17:35:32
Mostrar datos de un Query en un DBGrid PTW Conexión con bases de datos 2 22-04-2004 19:56:53
Como mostrar decimal en DBGRID andrestsas Varios 2 08-08-2003 20:32:14
¿Como mostrar un campo Memo en un DBGrid de una Query? judoboy OOP 5 07-05-2003 04:36:19


La franja horaria es GMT +2. Ahora son las 05:35:56.


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