Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2005
orsajo orsajo is offline
Registrado
 
Registrado: oct 2005
Posts: 4
Poder: 0
orsajo Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 03-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.534
Poder: 26
dec Va camino a la famadec Va camino a la fama
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.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #3  
Antiguo 03-10-2005
orsajo orsajo is offline
Registrado
 
Registrado: oct 2005
Posts: 4
Poder: 0
orsajo Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 03-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.534
Poder: 26
dec Va camino a la famadec Va camino a la fama
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?
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #5  
Antiguo 03-10-2005
orsajo orsajo is offline
Registrado
 
Registrado: oct 2005
Posts: 4
Poder: 0
orsajo Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 03-10-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 13
epuigdef Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 03-10-2005
orsajo orsajo is offline
Registrado
 
Registrado: oct 2005
Posts: 4
Poder: 0
orsajo Va por buen camino
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:33:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi