Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2009
cesar_gta86 cesar_gta86 is offline
Miembro
 
Registrado: oct 2007
Posts: 32
Poder: 0
cesar_gta86 Va por buen camino
Question Cómo volver los registros a cero de una tabla con autoincremento como campo clave?

Hola que tal amigos, lo que pasa es que necesito volver los registros a cero, tengo una tabla con el campo clave autoincrementable. Ya he tratado de utilizar una función que hace tiempo me proporcionaron, pero ahora que la quiero utilizar me manda un mensaje de que la tabla que quiero volver los registros a cero, no la puede abrir, y según yo le doy la ruta correcta.

Evento:
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
var
direccion:string;
begin
Table3.Active:=true;
Table3.First; //préstamos
if Table3.FieldByName('No_prestamo').AsString<>'' then
begin
Table3.Active:=false;
//direccion:= ExtractFilePath(ParamStr(0)); ejecutable cuando ya tenga el programa en ejecutable
direccion:='C:\Documents and Settings\César Alberto\Escritorio\Sistema Control_documentos bueno\Control_documentos\B.D\prestamos.db';
// direccion:=direccion+'Carreras.db'; ejecutable
SetAutoInc(direccion,0);
MessageDlg('Han sido eliminados todos los registros de los préstamos...', mtInformation, [mbok],0);
close;
end;
end;




Función:

Código Delphi [-]
 

Procedure SetAutoInc(filename : string; Value : Longint);
var
mystream : tfilestream;
begin
mystream := tfilestream.create(filename,fmOpenWrite + fmShareExclusive);
try
mystream.Seek(73, soFromBeginning);
mystream.Writebuffer(Value, SizeOf(Value));
finally
mystream.Free;
end;
end;




Ha, y primero no me marcaba error, y si regresaba el contador de registros a cero, pero no los eliminaba.

Saludos y grácias de antemano.

Última edición por marcoszorrilla fecha: 25-02-2009 a las 06:49:01.
Responder Con Cita
  #2  
Antiguo 25-02-2009
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
Está funcion la utilizo yo mismo para volver el contador a 0 en Tablas Paradox. Su comportamiento siempre ha sido correcto, requiere que en el momento de su uso la tabla esté cerrada, ya que se accede a bajo nivel a la misma.

Por otra parte para eliminar todos los registros requiere uso exclusivo y la función.

Código Delphi [-]
MiTabla.EmptyTable;

Por lo tanto la secuencia sería.

1.- Poner la tabla en uso exclusivo.
2.- Vaciar la tabla.
3.- Cerrar la tabla
4.- Ejecutar el cambio del autoincremento.

Otra cosa es que la tabla tenga algún error y no funcione correctamente.

Otra posibilidad para tablas temporales, crearlas mediante código en una carpeta del PC en donde esté ejecutándose la aplicación en ese momento.

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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ayuda de como Insertar registro con procedimiento almacenado y campo autoincremento El_Chava Firebird e Interbase 5 25-11-2008 06:57:42
como utilizo un campo con autoincremento. aurbano Tablas planas 8 26-10-2005 11:25:51
campo autoincremento para tabla con ADO VRO Conexión con bases de datos 2 06-06-2005 11:01:06
Como obtener valor de Campo Autoincremento... vic_ia Firebird e Interbase 5 10-05-2005 17:19:42
Como copiar un registro cambiando el campo de clave primaria Javi2 SQL 2 17-09-2004 20:49:50


La franja horaria es GMT +2. Ahora son las 18:35:01.


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