Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con la busqueda (https://www.clubdelphi.com/foros/showthread.php?t=42596)

mjjj 18-04-2007 01:19:28

problemas con la busqueda
 
tengo un problemita... saque una idea de otro foro para realizar una busqueda segun 2 campos de una tabla.

el codigo que utilize es el siguiente:

table1.Locate('OT;Sub OT', varArrayOf([edit1.text, edit2.text]), [])

otra cosa que debo agregar es que no puedo poner ninguna Key a estos campos, ya que pueden haber registros igual... por otro lado al combinar estos 2 campos, siempre va a ver una diferencia entre registros.

Por ejemplo: Puede darse que existan 2 registros OT con el valor 25000, pero un registro tendria la Sub OT "A", y el otro la Sub OT "B".

Ahora bien, lo que necesito hacer, es que al buscar segun estos 2 campos, quede seleccionado en el registro que ando buscando.

El codigo que presento, no se posiciona sobre el registro buscado...

Sirve este codigo... o me presentan uno mejor...

Gracias

Ferrari 18-04-2007 04:58:31

Motor
 
Sobre que BD estas trabajando?:cool:

Neftali [Germán.Estévez] 18-04-2007 11:36:48

Cita:

Empezado por mjjj
otra cosa que debo agregar es que no puedo poner ninguna Key a estos campos, ya que pueden haber registros igual... por otro lado al combinar estos 2 campos, siempre va a ver una diferencia entre registros.

Bueno eso es la definición de "clave compuesta" :D.

Cita:

Empezado por mjjj
Ahora bien, lo que necesito hacer, es que al buscar segun estos 2 campos, quede seleccionado en el registro que ando buscando.

En código parace correcto; Revisa el último parámetro de opciones para "afinar" un poco más la búsqueda.

mjjj 18-04-2007 17:54:31

gracias... solucione el problema.. era una estupides mia... en la tabla el campo estaba con mayuscula y yo lo buscaba en minuscula.... uffffff

otra consulta....
dentro de la misma idea, ahora quiero buscar segun el campo OT solamente... y quiero que me aparezca en un memo o en listbox o en dbgrid ( creo que lo mejor es el dbgrid), todos los registros coincidentes con la busqueda segun el campo OT... que me muestre los registros semejantes en el campo OT, pero distintos en el cmapo Sub OT.

Espero me puedan ayudar....

Gracias

Matias

Neftali [Germán.Estévez] 18-04-2007 18:49:48

En ese caso es un componente de tipo Query.
Conectalo a un DBGrid (por ejemplo) y utiliza una sentencia SQL (en el QUERY) del tipo:

Código SQL [-]
  SELECT * FROM TABLA WHERE OT = 12345

mjjj 18-04-2007 19:32:44

ahhh... perdon, nose que fue lo que quisiste decir... explicame con manzanas porfa... que no tengo idea que es un query, ni como se hace funcionar...

onda, que escribo, que propiedades pongo, que componente agrego al form....

Ayuda porfa...


gracias

Neftali [Germán.Estévez] 19-04-2007 12:32:14

Table1 es un componente que representa una tabla, un Query es algo similar, pero un poco más flexible (en la misma paleta del TTable lo encontrarás...).

A un query le defines una sentencia SQl y eso te recupera todos los registros de una tabla (similar a un TTable) o parte de ellos segun una conciciones.
Por ejemplo si usas un TQuery con la propiedad SQL a:

Código SQL [-]
SELECT * FROM USUARIOS
  // Recuperarás todos los registros de la tabla Usuarios (comio el ttable)
  SELECT * FROM USUARIOS WHERE COD > 20
  // Recuperarás todos los registros de la tabla Usuarios que cumplan la 
  // condición de que su cod es mayor que 20
  SELECT * FROM USUARIOS WHERE NOMBRE LIKE 'R%'
  // Recuperarás todos los registros de la tabla Usuarios que cumplan la 
  // condición de que su Nombre empieza por R
  SELECT * FROM USUARIOS ORDER BY FechaNacimiento
   // Recuperarás todos los registros de la tabla Usuarios ordenados por
  // el campo FechaNacimiento

Y así muchas combinaciones más. Es cuestion de mirarse el lenguaje SQL.

mjjj 19-04-2007 16:41:48

no cacho nada... donde pongo lo que me escribiste... escribeme el codigo tal cual debe ir porfa, y donde debe ir

como activo un query, como lo llamo, funciona solo?? .... donde escribo el codigo....

ayuda porfa.... no tengo idea que hacer....

lo que necesito hacer es hacer una busqueda en cierto campo, donde se puede repetir ulgun registro... necesito que me aparezcan todos los registros iguales a la busqueda...


gracias

Lepe 19-04-2007 17:02:00

Perdona esta respuesta pero es por tu bien. Si quieres un carnet de conducir, tienes que estudiar, si quieres programar, también.

En este enlace tienes la cara oculta de delphi 4 de Ians Marteens, es un perfecto libro para aprender todos esos temas, y no tendrás que recurrir al foro por falta de conceptos básicos.

En internet, busca un "manual SQL" que necesitarás para esas consultas.

Podría sacarte de ese escollo dando los pasos necesarios, saldrías del paso, pero atrasarías porque la próxima vez tendrías un problema distinto y no sabrías resolverlo. Prefiero que por ti mismo sepas desenvolverte.

Saludos

Neftali [Germán.Estévez] 19-04-2007 18:32:40

En la sección de ejemplos de mi página, tienes uno que se titula "Generar una búsqueda (LIKE *) utilizando SQL".
Bájatelo y revisa el código. Es muy similar a lo que necesitas hacer.
Puedes ver cómo funciona un Query, la porpiedad SQL, como activarlo,...


La franja horaria es GMT +2. Ahora son las 01:05:37.

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