Consulta con muchos if
amigo tengo una situación: debo hacer una consulta a una tabla de la base de dato sql Server donde puede haber varios resultado y todos pueden ser valido: a ver si logro explicarme bien:
En una tabla tengo una columna la cual se almacena una información: (TRATAMIENTO, EXAMEN, LABORATORIO, FICHA MEDICA) en otra columna de este misma está el número de cliente. Ahora bien: Partimos de un principio que un cliente puede tener un TRATAMIENTO o un EXAMEN, o un LABORATORIO o FICHA MEDICA pero en muchos casos un solo cliente puede tener 3 o incluso todas las condiciones. me problema es que si el cliente tiene un solo caso me funciona perfecto pero cuando tienes varios casos siempre me trae solo uno. Le muestro un ejemplo de la tabla:
Espero se pueda entender bien y finalmente esta es el codigo que estoy usando:
|
¿Estas recorriendo tu tabla para verificar los demás registros?
|
Cita:
|
No se si entendi, pero esto no es un simple
|
Cita:
En tu código sólo estás realizando los cambios sobre el registro actual (que debería ser el primero), pero en ningún momento estás haciendo un recorrido por todos los registros de un cliente. Una vez hecho el Active, que ejecuta la consulta o abre la tabla, debería haber algo así:
|
Cita:
|
Cita:
Maestro, usted que todo lo sabe. ¿Por qué mucha gente prefiere utilizar un while en lugar de un For? Saludos. |
Cita:
Cita:
FOR cuando sabes de antemano el número de elementos a procesar. Es cierto que donde puedes usar un FOR, también puedes usar un WHILE (llevando tú el contador), pero no al contrario. Y luego supongo que están las preferencias, manías, costumbres de cada uno... :D:D |
Cita:
|
Cita:
|
Según tu código:
|
Intenta con:
|
Es que si solamente muestra un registro es porque ¡¡¡sólo hay un registro!!!
Comprueba el select, a ver cuántos registros te devuelve. |
Cita:
|
¿Cómo que solo te retorna el ultimo registro?
Vamos a hacer esto, tu sentencia SQL
Ponla directamente en el código para ver que hace. |
Cita:
|
Hazlo directamente así:
|
Usa el código que te he puesto antes, el tuyo no está bien.
Repito, usar el código que te hemos indicado. |
1 Archivos Adjunto(s)
Cita:
|
Hola
Intenta con esto:
Saludos |
He puesto:
|
Cita:
Saludos |
Cita:
|
Cita:
|
Estimado colega, le propongo esta alternativa
Saludos y buena fortuna |
Cita:
|
Veamos...
Supongamos que tu formulario es TForm1. Espero que ahora este claro. Saludos cordiales |
Cita:
Verifique tabla Verifique las condiciones hice la consulta en labla en sql coloque en el where los valores manueales incluso coloque un para verificar que en efecto encontrara la misma cantidad de registro y perfectamente conicide. Tambien le coloque un para obligarlo a irse al primer registro y tampoco con eso me funciona Al parecer no está respetando el NEXT, es decir haga como haga la consulta solo se habilita un solo boton. lo hice con while tambien lo hice con el for y nada |
La solucion temporal que encontre es la siguiente funciona perfecto pero como podra imaginarse la consulta se vuelve muy lenta :
|
Cita:
Me he reído mucho... |
En estos casos el error o la solución suele ser un detalle muy tonto sobre el que no hemos caído.
Te recomiendo que crees un pequeño proyecto con esa porción de código donde se reproduce el problema y para los datos uses un TClientDataset y grabes los datos en un fichero. De esa forma cualquiera puede probarlo y reproducir el error y el comportamiento que tienes. Lo subes y lo revisamos. Seguro que encontramos la lógica e incluso te podemos dar algún consejo de mejora. |
El problema en el for lo tienes en que desactivas los botones en cada paso del for
Por ejemplo e un registro que no es TRATAMIENTO desactivas el boton5, aunque en el registro anterior lo actives. Lo que puedes hacer es desactivar todos los botones fuera del for y una vez dentro activar los botones
|
La franja horaria es GMT +2. Ahora son las 05:40: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