Borrar registros
Publicado por inutil (42 intervenciones) el 20/06/2005 22:50:37
Como estan ?
La pregunta es la siguiente.
Tengo un programa que debe borrar registros repetidos, pero no funciona como debe ser
utilizo tres IBquery
IBquery1. tiene la lista de todos los registros, lo recorro uno por uno.
Ibquery2 contiene la lista de todos los repetidos por nombre o email, de ibquery1.
IBquery3 lo utilo para borrar los repetidos.
Mi algoritmo lo tengo de la sig manera .
Ibquery.sql.add = 'SELECT * FROM CLIENTES';
mientras no ibquery1.eof hacer
actual = Ibquery1.fieldbyname('CVE_CLIENTE').assTring;
Consulta2 = 'SELECT * FROM CLIENTES WHERE EMAIL=''%s'' OR NOMBRE=''%s''
AND CVE_CLIENTE<>actual;
ibquery2.sql.add(Consulta2);
ibquery2.open;
mientras no ibquery2.eof hacer
borrar = MD.ibquery2.fieldbyname('CVE_CLIENTE').asString;
ibquery3.sql.add('DELETE FROM CLIENTE WHERE CVE_CLIENTE=borrar');
ibquery3.execsql;
end while
Transaccion.CommitRetaining;
ibquery1.next
end; //finmientras ibquery1 no eof
Esa es la idea de como esta mi codigo. Alguna observacion ?
Porque no solo borra los repetidos, sino toda la bd.
Para darme cuenta de lo que sucede meti en una lista la cve de los registros que se estan eliminando, asi como el que no debe borrarse, pero como resultado.he notado que un registro que supuestamente se borro se vuelve a integrar en la lista de no borrados y en sus repetidos esta el que no debia borrarse es decir la primer coincidencia de este registro, me explico ?
Cualquier ayuda , Gracias de antemano..
La pregunta es la siguiente.
Tengo un programa que debe borrar registros repetidos, pero no funciona como debe ser
utilizo tres IBquery
IBquery1. tiene la lista de todos los registros, lo recorro uno por uno.
Ibquery2 contiene la lista de todos los repetidos por nombre o email, de ibquery1.
IBquery3 lo utilo para borrar los repetidos.
Mi algoritmo lo tengo de la sig manera .
Ibquery.sql.add = 'SELECT * FROM CLIENTES';
mientras no ibquery1.eof hacer
actual = Ibquery1.fieldbyname('CVE_CLIENTE').assTring;
Consulta2 = 'SELECT * FROM CLIENTES WHERE EMAIL=''%s'' OR NOMBRE=''%s''
AND CVE_CLIENTE<>actual;
ibquery2.sql.add(Consulta2);
ibquery2.open;
mientras no ibquery2.eof hacer
borrar = MD.ibquery2.fieldbyname('CVE_CLIENTE').asString;
ibquery3.sql.add('DELETE FROM CLIENTE WHERE CVE_CLIENTE=borrar');
ibquery3.execsql;
end while
Transaccion.CommitRetaining;
ibquery1.next
end; //finmientras ibquery1 no eof
Esa es la idea de como esta mi codigo. Alguna observacion ?
Porque no solo borra los repetidos, sino toda la bd.
Para darme cuenta de lo que sucede meti en una lista la cve de los registros que se estan eliminando, asi como el que no debe borrarse, pero como resultado.he notado que un registro que supuestamente se borro se vuelve a integrar en la lista de no borrados y en sus repetidos esta el que no debia borrarse es decir la primer coincidencia de este registro, me explico ?
Cualquier ayuda , Gracias de antemano..
Valora esta pregunta
0