Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Posicionarse en una tabla (https://www.clubdelphi.com/foros/showthread.php?t=25759)

orsajo 03-10-2005 12:22:13

Posicionarse en una tabla
 
Saludos:

Mi problema es el siguiente:

Necesito posicionarme correctamente en una tabla paradox para poder eliminar un registro. Le paso como parámetros la clave primaria. Mi codigo es el siguiente:

Tabla.Open;
Tabla.FindKey([variable]);
Tabla.Delete;
Tabla.Close;

El problema es que no consigo que se posicione en el lugar correcto. Siempre me borra el primer registro de la tabla.
Gracias de antemano, un saludo y Orsajo.

dec 03-10-2005 12:56:10

Hola,

No sé si tendrías que comprobar previamente que "FindKey" tiene un resultado positivo, algo más o menos como esto:

Código Delphi [-]
   if Tabla.FindKey([variable]) then
     Tabla.Delete;
Porque puede ser que la función devuelve "False" y, según la ayuda de Delphi en ese caso no se moverá el cursor...


Cita:

Empezado por Ayuda de Delphi - FindKey
If the search is successful, FindKey positions the cursor on the matching record and returns true. Otherwise the cursor is not moved, and FindKey returns false.


orsajo 03-10-2005 13:06:44

Si, pero no
 
Este codigo, por desgracia, no me soluciona el problema, puesto que ahora ya no me borra el primero registro siempre, pero sigue sin borrarme el adecuado.

Lo que yo busco es que se posicione correctamente y borre el contenido. De todas formas, te agradezco tu respuesta.

Un saludo, Orsajo.

dec 03-10-2005 13:18:03

Hola,

Creo que tú mismo estás utilizando las palabras que te dan una posible respuesta. Si el código que te he propuesto anteriormente sigue sin funcionarte significa algo: la función "FindKey" no obtiene resultados, devuelve "False" y, por lo tanto, no hay posibilidad de situar el cursor en un registro y mucho menos borrarlo. ¿Estoy equivocándome en algo? ;)

orsajo 03-10-2005 13:21:12

Es posible
 
Es muy posible. Pero entonces, planteo otra cuestión, ¿existe alguna solución alternativa?, ¿como puedo eliminar un registro teniendo la clave primaria escrita en un edit?.

Gracias de nuevo. Orsajo

epuigdef 03-10-2005 13:25:47

Buenas!


Prueba con una sentencia SQL de eliminación:

query.sql.text := 'delete from tabla where clave = ' + quotedStr(Edit1.text);
query.execSQL;

Por cierto, el quotedStr sólo lo tienes que poner si la clave es alfanumérica

Un saludo

Edu

orsajo 03-10-2005 13:42:03

Gracias
 
Gracias a todos:

Ya esta todo solucionado, el problema era que la clave es compuesta.

TABLA.FINDKEY([CLAVE1, CLAVE2]);

Y todo solucionado, gracias de nuevo, a todos.

Un saludo, Orsajo.


La franja horaria es GMT +2. Ahora son las 09:07:57.

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