Ver la Versión Completa : reiniciar campo auto incremento
LOBO VELEZ
14-01-2005, 06:40:27
nesecito hayuda para reiniciar un campo de auto incremento de paradox :(
marcoszorrilla
14-01-2005, 07:21:55
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Close;
SetAutoInc('C:\Delphi\Prueba.db',StrtoInt(edit1.text));
Table1.Open;
end;
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;
Un Saludo.
LOBO VELEZ
15-01-2005, 20:14:02
gracias pero tengo un problema con lo del auto incremento me mas¿rca un error en :setautoinc
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Close;
SetAutoInc('C:\Delphi\Prueba.db',StrtoInt(edit1.text));
Table1.Open;
end;
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;
roman
15-01-2005, 20:33:32
gracias pero tengo un problema con lo del auto incremento me mas¿rca un error en :setautoinc
Normalmente ayuda que indiques cuál es el error que te marca. Pero bueno, en este caso salta a la vista: no puedes llamar a SetAutoInc antes de haberlo declarado.
Por eso no es bueno copiar y pegar a ciegas los ejemplos que nos ponen ;)
// Saludos
LOBO VELEZ
16-01-2005, 08:17:44
Definitivamente No Entiendo Nececito Que Me Expliquen Como Hacerlo Paso A Paso Soy Nuevo No Programo Mucho Pero Quiero Aprender Como Se Declara Expliquenme Las Partes Algo Porfavor Gracias
Creo que estas un poco espeso, igual cuando te despejes ya lo solucionas, pero bueno.... ahí vá
form1 = class(Tform)
...
public
Procedure SetAutoInc(filename : string; Value : Longint);
end;
implementation
Procedure Tform1.SetAutoInc(filename : string; Value : Longint);
begin
....
end;
LOBO VELEZ
16-01-2005, 19:31:51
me marca un error en el public
Procedure SetAutoInc(filename : string; Value : Longint);
el errror dice:
[Error] MAIN.pas(21): Unsatisfied forward or external declaration: 'TForm1.SetAutoInc'
gracias.
marcoszorrilla
16-01-2005, 19:54:51
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
Procedure SetAutoInc(filename : string; Value : Longint);
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Close;
SetAutoInc('D:\Pruebas\Prueba.db',0);
Table1.Open;
end;
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;
end.
Pon una tabla Paradox, en una carpeta la que sea, en mi ejemplo la tabla se llama Prueba.Db y está en la carpeta D:\Pruebas del disco duro Letra D:
Introduce algunos registros a mano, suponemos que tiene un campo autoincremento, borra todos los registros, todo esto desde el DatabaseDesktop, ahora introduce uno nuevo verás que el autoincremento sigue como iba por ejemplo con el número 20.
Ahora con el código que te he puesto si lo ejecutas, verás que la tabla cuando introduzcas nuevos registros empieza otra vez por 1.
Un Saludo.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.