FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Borrado de registros
Hola a todos.
Tengo una tabla Acces, accedo a ella mediante un ADOQuery. Cuando intento borrar todos los registros con el codigo. begin ADOQuery1.First; while not ADOQuery1.Eof do begin ADOQuery1.Delete; end; Dandome el siguiente mensaje de error: Informacion de columna de clave insuficiente o incorrecta, demasiadas filas afectadas por la actualizacion. La tabla no esta indexada, ni ordenada. Tiene sobre unos 100 registros. ¿alguna ayuda? Gracias y saludos. |
#2
|
||||
|
||||
Para no tener problemas con los componentes ADO, las tablas tienen que tener siempre una clave única, incluso siendo así es posible que tengas que instalar la versión que corresponda de las MDAC.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Hola, en vez de usar un borrado secuencial como el que estás usando, podrías lanzar una secuencia SQL que borre todos los registros de una sola vez.
Ya que estás usando ADO, supongo que has tenido que incluir un componente ADOConnection. Incluye también un componente ADOCommand e intenta usar el siguiente código que te escribo. Un saludo. Var cSQL: String; Begin Try ADOConnection1.BeginTrans; ADOCommand1.Connection := ADOConnection1; cSQL := 'Delete From {Nombre_de_la_Tabla}'; ADOCommand1.CommandText := cSQL; ADOCommand1.Execute; ADOConnection1.CommitTrans; Except On E:Exception do begin ADOConnection1.RollbackTrans; Screen.Cursor := crDefault; MessageDlg(E.Message, mtWarning, [mbOk], 0); raise; end; End; end; |
|
|
|