![]() |
Se puede hacer un else en un While not query1.eof Do?
hola a todos, tengo un inconveniete con un BUCLE, quiero ponerle un else a un While not query1.eof do pero me salta este error:
'END' expected but 'ELSE' found Este es bucle que quiero utilizar:
la idea de este bucle es que busque si el codigo ingresado no se repite en la base de datos... me darian alguna sugerencia? o alguna forma de modificarla para que me funcione, ya probe de muchas maneras sin usar ELSE pero no pude resolverlo Desde ya muchas gracias..... |
Está mal anidado los if then begin end ;)
Fíjate bien... |
ya lo corregi.... pero igual da el mismo error.... :(
|
Y ¿por qué no nos muestras como lo "corregiste"? :p
// Saludos |
Asi esta mi proceso..... ya lo mire muchas veces y creo que esta bien desde mi punto de vista... corrijanme nomas si deje pasar algo... gracias |
eres conciente de que el else despues del end del while... es del primer if verdad?
en todo caso para que hacer un do while si estas verificando si el codigo ingresado existe via un query |
¿y ese código de dónde viene? |
Si indentaras el código apropiadamente sería más fácil de ver. Te falta el end del if exterior. Lo tienes que poner justo despúés del end del while.
// Saludos |
Lo que sucede aquí es una incompresible falta de atención y lectura a la sintaxis y gramática de Pascal. Con todo respeto.
TODA instrucción debe finalizar con ; TODO begin debe ir con su correspondiente end El error se debe a un cierre prematuro debido a un punto y coma colocado después del end de la parte then. Un IF se "cierra" colocando el ; al final. Es decir:
Simple: Repasar gramática y sintaxis. Saludos, |
Cita:
// Saludos |
Hay alguna excepción a la norma, ejemplo:
|
No es una excepción, es sólo que, al no haber sentencia posterior, no es necesario. Como dije, en pascal el punto y coma no termina, separa. Cosa, por ejemplo, que no ocurre en C, en donde el punto y coma sí es un terminador.
// Saludos |
sin temor a equivocarme... lo que negrokau quiere hacer es validar si un codigo ya existe
pero me parece que no lo esta haciendo correctamente podrias usar el evento ONValidate en el campo y ahi mismo podrias verificar mediante un query si el codigo existe o no a mi parecer el do while esta de mas (salvo que en el query te jale varios registros iguales :S) |
Cita:
guardar, es por eso que quiero poner un else al while... |
A ver, un while no lleva un else. Punto.
Ahora, como ya te han observado, más allá del error propiamente sintáctico, tienes un error de concepto. No necesitas recorrer los resultados de una consulta para determinar que un código ya se ha introducido. Únicamente necesitarías saber si la consulta regresa por lo menos un registro, para lo cual cuentas con la propiedad IsEmpty del Query. // Saludos |
Cita:
El "terminador" que se me ocurre es el punto:
Jeje :D Saludos, |
Ya tengo claro que el while no lleva else. Ahora el problema que tengo es que al encontrar un mismo codigo tendria que el focus posicionarse en cod_barra, pero igual recorre todo el algoritmo y guarda..., como le hago para que no guarde si encuentra un mismo codigo y que el focus se situe en cod_barra... |
Cita:
|
yo lo tengo mas o menos asi
como ubicas el ONvalidate? en el query o tabla donde estas grabando la informacion le das doble click al componente y te salen los campos persistentes.. en el campos en el cual pretendes grabar el "codigo", busca en el object inspector.. el evento Onvalidate... ahi colocas el codigo para verificar si existe o no |
Debes explicar primero EXACTAMENTE qué quiéres hacer, porque ese while, aparentemente, no sirve para nada, como ya han comentado.
|
| La franja horaria es GMT +2. Ahora son las 00:08:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi