FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
El planteamiento de dsa132132 es totalmente correcto, lo que pasa es que quizás en lugar de AND ha de ser un OR (tampoco se exactamente lo que quiere conseguir), pero el uso de los 2 Locates en el IF no es erróneo
Básicamente lo que hace el if este es que si no existe un registro en el que el campo "param1" sea igual a Edit1.Text (es decir, Param1 <> Edit1.Text) y sí existe un registro en el que el campo Param2 sea igual a Edit2.Text, muestre el mensaje Quizás es que Param1 y Param2 no son los nombres de los campos??? Si fuera esto, tendrías que quitarle las comillas No obstante, también creo que lo del SQL es una muy buena opción (por no decir la mejor si la tabla es grande) |
#2
|
||||
|
||||
Quizás no me explique bien, el uso de dos locates es correcto pero no el AND, porque nunca se cumplirá esa condición, no por otra cosa. Menos mal que siempre está cadetill para explicarlo mejor....;rolleyes:
|
#3
|
||||
|
||||
El problema es que no nos dice que comprobación es la que quiere realizar. Yo por ejemplo para eliminar un cliente supongamos que la condición es que no tenga ninguna factura ni ningún albarán.
nContro:=0; Busca Facturas. Si encuentra 1, no interesa si tiene más ó no. nContro:=nContro+1; Busca Albaranes, lo mismo que el anterior. nContro:=nContro+1;
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
Última edición por marcoszorrilla fecha: 03-09-2004 a las 15:30:12. |
#4
|
|||
|
|||
Hola a todos;
Quizás he sido yo desde un principio el que no se ha explicado con claridad, lo que intento es lo siguiente; Deseo eliminar en registro de la Base de Datos pero antes hago la comprobación de que ese registro existe en la Base de Datos. Hasta aqui bien. Ese registro que deseo eliminar tiene 3campos como clave primaria (antes había puesto sólo 2 por simplificar mi consulta, supongo que será lo mismo), entonces intentava hacer un Locate sobre esos 3 campos porque si lo hago sobre uno solo no es correcto. He probado con OR en vez de AND pero sigue saltándose la instrucción. Muchas gracias a todos por vuestro interés!! |
#5
|
||||
|
||||
Cita:
Este tampoco es correcto. Supone que tenes los registros: Código:
campo1 campo2 campo3 ====== ====== ====== uno uno uno dos dos dos tres tres tres Bien sea con un locate que abarque los tres campos, o con un Query que incluya los tres en el predicado, si podes garantizar que un registro existe en la BD. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
|||
|
|||
Sí, vale, pero Busca Facturas y Busca Albaranes han de ser una función (por ejemplo) que realice o bien un Locate sobre las tablas pertienentes, o una sentencia SQL o lo que nos de la gana. Si la elección fuera la del Locate, se puede hacer todo directamente en el mismo IF y ahorrarnos la variable
De hecho, yo más o menos suelo hacer lo mismo que tu, pero en lugar de la variable, pongo un Exit Como suelo hacer funciones, el que se encarga de mostrar o no el mensaje será el que llame a ésta. No obstante, como ya decía anteriormente y comentas muy bien, sin saber exactamente lo que pretende conseguir con esos Locates, es hablar por hablar |
#8
|
|||
|
|||
Cita:
Cita:
Cita:
|
#9
|
||||
|
||||
Código:
if MiTabla.Locate('campo1; campo2; campo3', VarArrayOf[Valor1, Valor2, Valor3], []) then Saludos |
|
|
|