Pasos correctos para eliminar un registro con un table

Para eliminar un registro con un table
¿Cuáles son los pasos correctos? ¿Es así o me equivoco?
tblhistvnt.Delete;
tblhistvnt.post;
tblhistvnt.Refresh;

4 respuestas

Respuesta
1
Post es un metodo que funciona con edit e insert. para borrar, con delete basta
Respuesta
1
No es correcto. Tu código te va a producir un error en la segunda linea. El "post", se utiliza únicamente para cuando tu programa se encuentra en estado de edición o Inserción.
Utiliza unicamente lo siguiente:
tblhistvnt.Delete ;
Te recomiendo también que utilices los eventos OnBeforeDelete de tu TTable, con algo como lo siguiente:
{Validar si el estado del registro es eliminable}
// ... Inserta aquí el codigo
// ... Si no se puede
// ... eliminar aplica el
// ... metodo Abort ;
{Despues pregunta al usuario si esta seguro que desea eliminarlo}
If MessageDlg(msgAdvertencia, mtCustom, [mbYES,mbNO], 0) <> ID_YES Then Abort ;
Donde MsgAdvertencia es una constante que contiene el Mensaje que aparece al usuario antes de eliminar.
No es necesario que utilices el Refresh, puesto que la mayoría de los manejadores de base de datos refrescan automáticamente después de eliminar un registro.
Espero haberte podido ayudar. Si te quedo alguna duda, vuelve a preguntar
Ceocarbajal
Respuesta
1
Hi,
Mira, no estas muy errado pero te voy a dar unos datos más.
Al borrar un registro de un TTable, te conviene hacer un Close y un Open para dejar todas las referencias a este bien actualizadas. El método Refresh tiene muchas imperfecciones cuando se borrar o agregan registros. Obviamente esto toma un poco más de tiempo pero elimina la inconsistencia.
Te mando un pedazo de código que busca un registro y lo borra El código es el siguiente:
**********************
with tblhistvnt do
begin
First;
while not(Eof) do
begin
if tblhistvnt.['VENDEDOR'] = 'Nahuel Ramos' then
begin
Delete;
exit; // Si retiras este exit te va a borrar todos las registro que correspondan a Nahuel Ramos.
end;
Next;
end;
Close;
Open;
end;
******************
Para realizar estas funciones te conviene utilizar comandos SQL si tu motor de base de datos lo permite. No quita que tengas que cerrar y abrir nuevamente los TTable pero la consulta en si es mucho más rápida y se ejecuta en el servidor de la base de datos.
Nahuelon..
Respuesta
1
Si te da algún mensaje de error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas