Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   La operacion no esta permitida en este contexto (https://www.clubdelphi.com/foros/showthread.php?t=62328)

Rako 17-12-2008 12:54:50

La operacion no esta permitida en este contexto
 
Buenas,

tengo un DBGrid conectado a un ADOQuery, el cual tiene un select * y en el filtered se le ha puesto los registros a filtrar.

El caso es que si quiero borrar esos registros filtrados, al hacer el ADOQuery6.DeleteRecords(arFiltered); me da ese error, que creo que tiene algo que ver con que este "conectado y abierto" con el DBGrid....solo me deja hacer delete, y borrarlos de uno en uno puede ser muy neficiente cuado seleccionen muchos registros.... alguien sabe como poder borrar de una vez todos los registros filtrados y porque sale ese error? Muchas gracias :)

poliburro 17-12-2008 16:34:26

Dos cosas compañero,

Primera, El uso de filtros es algo tremendamente ineficiente en las aplicaciones. Por tanto te aconsejo cambies tu esquema.

Segunda, El borrado será más eficiente si lo realizas sin considerar filtros y en su lugar ejecutas una consulta de borrado.


Saludos.

luisgutierrezb 17-12-2008 16:39:52

A lo mejor es porque no tienes llave primaria en la tabla, aunque como mencionan, hay otras formas mas eficientes

Caro 17-12-2008 17:04:02

Hola, como te han dicho, sería mejor que hicieras el borrado mediente consulta (Delete....) y pones en el where las condiciones de los registros a borrar. Inclusive puedes utilizar el DBgrid con la opción MultiSelect, seleccionas los registros a borrar, recorres esos registros y armas la consulta.

Saluditos


La franja horaria es GMT +2. Ahora son las 07:48:33.

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