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-03-2004
efromm efromm is offline
Registrado
 
Registrado: mar 2004
Posts: 1
Poder: 0
efromm Va por buen camino
Unhappy ayuda por favor

Hola soy nuevo utilizando sql en delphi como hago para hacer una busqueda desde un editbox algo asi


select * from Comp.dbf where upc = edit1.text

esto me marca error como hago eso
lo que quiero es buscar un numero dentro de la columna UPC introduciendo el numero que quiero buscar desde un editbox



por favor ayudenme si???
Responder Con Cita
  #2  
Antiguo 08-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
hola efromm.

Antes de responder a tu pregunta, quiero recomendarte que leas la guia de estilo de los foros, y que para los próximos hilos que abras en estos foros, pongás un título adecuado a la pregunta que estas haciendo. En este caso, por ejemplo, "Cómo filtrar una consulta con el valor de un edit?" o algo similar. Se que cuando te inicias en los foros es algo dificil encontrar los títulos adecuados, y mas todavia plantear las preguntas que tenemos con toda la información necesaria, pero es un esfuerzo que vale la pena realizar, si queres encontrar ayuda y ser aceptado en esta comunidad.

Con respecto de tu pregunta, hay básicamente dos formas de resolverlo.

Una, es construir la sentencia SQL "al vuelo" y asignarla a un componente TQuery.

Algo como:

Código:
  MyQuery.SQL.Clear;
  MyQuery.SQL.Add('Select * from Comp.dbf where upc = ' + QuotedStr(Edit1.Text);
  MyQuery.Open;
La otra, que es la que yo prefiero y recomiendo, es usando parámetros en la sentencia SQL.

Lo harias de esta forma:

La sentencia SQL a introducir será:

Select * from Comp.dbf where upc = :CodigoUPC;

luego, en el inspector de objetos buscas la propiedad Parameters del query, y asignas el tipo de dato ptString y el tipo de parámetro ftInput al parámetro CodigoUPC.

Luego en tiempo de ejecución haces:

Código:
  MyQuery.ParamByName('CodigoUPC').AsString := Edit1.Text;
  MyQuery.Open;
Y listo!.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 08-03-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Personalmente utilizo la propiedad Filter del TClientDataset y me ha dado buenos resultados. No sé si vos lo podrías implementar, creo que tiene mucho que ver con el diseño de la app.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #4  
Antiguo 08-03-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
Repecto a lo de filtrar el TClientDataSet (o cualquier TDataSet), matizar que esto dependerá de si tienes ya los datos cargados o no. Si, por lo que sea ya tienes todo el dataset en memoria, es mejor hacer el filtro, ya que toda la operación se ejecutará en memoria y no hará falta acceder nuevamente a la BD. En cambio, si los datos no los tienes en memoria, es un despilfarro cargar todos los registros de la tabla para después filtrarlos cuando puedes ejecutar la query parametrizada y solo traerte los registros que ncesites.

Ah! todo esto es aplicable si usas un SGBD, lo cierto es que con tablas planas, hagas lo que hagas te traerás todos los registros a local y normalmente se aconseja trabajar con toda la tabla, es decir con el filtro.
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 08-03-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Es por eso que especifique que todo dependía del diseño de la app.
__________________
Suerte
.: Gydba :.
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


La franja horaria es GMT +2. Ahora son las 20: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