Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2005
manu manu is offline
Miembro
 
Registrado: may 2003
Posts: 25
Poder: 0
manu Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 20-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 22-03-2005
Toñico Toñico is offline
Miembro
 
Registrado: ene 2005
Posts: 50
Poder: 20
Toñico Va por buen camino
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;
Responder Con Cita
Respuesta



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 21:14:16.


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
Copyright 1996-2007 Club Delphi