FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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??? |
#2
|
||||
|
||||
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; 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; Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
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 :. |
#4
|
||||
|
||||
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 |
#5
|
|||
|
|||
Es por eso que especifique que todo dependía del diseño de la app.
__________________
Suerte .: Gydba :. |
|
|
|