FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Comparar un registro de un edit con un registro de una tabla en una consulta
Hola a todos,
Tengo un problemita, la verdad es que nose como hacerlo. Necesito hacer una comparación en mi consulta con un dato introducido en un edit y una tabla de mi base de datos. Esto para filtrar solo registros que contengan cierta gestion Cuando utilizamos SQL en un TQuery nos muestra GES en params y listo. Pero en este caso como lo hago? Hasta antes de aumentar todo lo que esta de azul funcionaba pero ahora no, por favor alguien lo puede compilar en su cabeza y avisarme cual es mi error. Bueno gracias nuevamente
__________________
El que da primero da dos veces. Última edición por dec fecha: 30-09-2005 a las 09:55:41. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!! |
#2
|
||||
|
||||
Cita:
saludos y espero que te sirva de algo...
__________________
No todo es como parece ser... |
#3
|
||||
|
||||
si lo haces de esta manera te ahorras el uso de la variable gest y de la variable Buscar1, ya que accesas directamente a tu edit. ¿Porque uso SQL.Add(toda la instrucción) en lugar de SQL.Add(una variable)? Si existe un error en la sentencia SQL, cuando utilizas una variable te dira que tienes un error en la línea 1, ya que la instrucción se pasa en una sola línea. En cambio, si se pasa la instrucción (como en mi ejemplo), en caso de que exista un error, te dirá exactamente en que línea esta el error
__________________
Última edición por ContraVeneno fecha: 30-09-2005 a las 00:55:08. |
#4
|
||||
|
||||
Hola ContraVeneno te cuentro que utilize tu lógica y me sirvió de mucho y cambie algunos detalles:
If (CUENTA1.TEXT<>'')OR(CUENTA2.TEXT<>'')THEN with FDM.QCC do begin If active then close; SQL.Clear; SQL.Add('SELECT *'); SQL.Add('FROM CCCLIENTES '); SQL.Add('WHERE ((PERIODO=01)OR(PERIODO=02)OR(PERIODO=03)OR(PERIODO=04)OR'); SQL.Add('(PERIODO=05)OR(PERIODO=06)OR(PERIODO=07)OR (PERIODO=08)OR'); SQL.Add('(PERIODO=09)OR(PERIODO=10)OR(PERIODO=11)OR(PERIODO=12))'); SQL.Add('AND (GESTION='+(GEST.Text)+')'); SQL.Add('AND (CUENTA='+(CUENTA1.Text)+')'); Open; NAME1.Text:=FIELDBYNAME('NOMBRE').AsString; CLOSE; end;exit; with FDM.QCC do begin If active then close; SQL.Clear; SQL.Add('SELECT *'); SQL.Add('FROM CCCLIENTES '); SQL.Add('WHERE ((PERIODO=01)OR(PERIODO=02)OR(PERIODO=03)OR(PERIODO=04)OR'); SQL.Add('(PERIODO=05)OR(PERIODO=06)OR(PERIODO=07)OR (PERIODO=08)OR'); SQL.Add('(PERIODO=09)OR(PERIODO=10)OR(PERIODO=11)OR(PERIODO=12))'); SQL.Add('AND (GESTION='+(GEST.Text)+')'); SQL.Add('AND (CUENTA='+(CUENTA2.Text)+')'); Open; NAME2.Text:=FIELDBYNAME('NOMBRE').AsString; CLOSE; end;exit; Ahora la duda que tengo es como utilizar este código si quiero hacer dos consultas en un mismo FORM, ya intente de todo pero como no domino SQL me sale error, aunque delphi compila bien
__________________
El que da primero da dos veces. |
#5
|
||||
|
||||
mi duda es con el exit como menciono en el comentario. No deberías tener ningún problema haciendo dos consultas, de cualquier manera tambien podrías usar otro TQuery (FDM.QCC2 por ejemplo). Otra cosita: cuenta1.text<>'' funcionaría bien, pero ¿que tal si en tu edit escribiendo un espacio? entonces cuenta1.text sería igual a '_' con lo que sí entraría en la función. Prueba hacer:
__________________
Última edición por ContraVeneno fecha: 30-09-2005 a las 20:58:47. |
#6
|
||||
|
||||
Hola nuevamente funciona perfectamente, quité los exit y agregué un if validando si 'cuenta2.text<> vacio' y recién funcionó
Agradezco mucho tu ayuda. a proposito creare un nuevo hilo para ver como guardar a partir de la búsqueda que me aconsejaste Saludos.
__________________
El que da primero da dos veces. |
|
|
|