PDA

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

Lepe
16-01-2005, 10:38:27
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.