tengo unas tablas en hechas en .mb y no se como poner a cero los indices o dejar vacia la tabla y que empiece de nuevo los indices en su estado inicial
cuando todavia no habia introducido los datos.He hecho:
nombretabla.close;
nombretabla.deletetabla;
y me dice que esta ocupada.Tampoco vale la idea de ir borrando de uno en uno los indices porque continua con el siguiente que habia anteriormente.
La base de datos es de escritorio.
Gracias por adelantado.
Publicado:
Jue Feb 03, 2011 6:24 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: ¿No se como se poner a cero los indices?
Anuncios
tuni escribió:
tengo unas tablas en hechas en .mb y no se como poner a cero los indices o dejar vacia la tabla y que empiece de nuevo los indices en su estado inicial
cuando todavia no habia introducido los datos.He hecho:
nombretabla.close;
nombretabla.deletetabla;
y me dice que esta ocupada.Tampoco vale la idea de ir borrando de uno en uno los indices porque continua con el siguiente que habia anteriormente.
La base de datos es de escritorio.
Gracias por adelantado.
¿Qué motor de base de datos usas? no conocemos la extensión .mb.
¿Lo que quieres es que los campos autoincremento empiecen por 0?
Publicado:
Vie Feb 04, 2011 1:04 pm
tuni Buen usuario
Registrado: Apr 07, 2009 Mensajes: 14
Asunto:
Pido disculpas,es de escritorio una de las que trae Delphi 6=Paradox.
Ya se que no es muy adecuada,pero en fin,ademas no creo que guarde mas archivos de 1000.
En cuanto a lo segundo que me preguntas te contesto que si.
Publicado:
Sab Feb 05, 2011 1:56 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto:
tuni escribió:
Pido disculpas,es de escritorio una de las que trae Delphi 6=Paradox.
Ya se que no es muy adecuada,pero en fin,ademas no creo que guarde mas archivos de 1000.
En cuanto a lo segundo que me preguntas te contesto que si.
Bueno, si usas Delphi 6 y la tabla no va a tener millones de registros y, lo que es más importante, si sólo va a conectarse un usuario a la tabla, Paradox no es una mala elección. Existen otras bases de datos de escritorio más "mordernas", como Access, SQLite, etc. aunque, repito, Paradox funciona bien con no muchos registros y con un solo acceso concurrente.
A continuación te mostramos el código fuente de una de nuestras aplicaciones, que hemos rescatado del archivo, está desarrollada expresamente para cambiar el valor del campo autoincremento de una tabla Paradox (.db):
var
formResetearAutoincremento: TformResetearAutoincremento;
implementation
{$R *.dfm}
procedure resetearAutoincremento (
fichero : string; valor : Longint);
var
mystream : tfilestream;
begin
mystream := tfilestream.create(fichero,
fmOpenWrite + fmShareExclusive);
try
mystream.Seek(73, soFromBeginning);
mystream.Writebuffer(valor, SizeOf(valor));
finally
mystream.Free;
end;
end;
procedure TformResetearAutoincremento.btReinciarClick(Sender: TObject);
begin
if MessageDlg('Atención: la aplicación no comprueba el fichero origen, ' +
'por lo que debe asegurarse de que se trata de una ' +
'tabla Paradox (.db). La aplicación escribe en el fichero ' +
'directamente por lo que debe hacer copia de seguridad ' +
'antes de continuar.' + chr(13) + chr(13) +
'¿Desea continuar con el proceso?',
mtConfirmation, [mbyes,mbno], 0) = mryes then
begin
tb.Close;
resetearAutoincremento (txtTabla.Text,
StrtoInt(txtValorAutoincremento.text));
MessageDlg('Campo de autoincremento de la tabla ' +
ExtractFileName(txtTabla.Text) + ' reseteado a ' +
txtValorAutoincremento.Text + '. Compruebe los datos abriendo ' +
'y editando la tabla.', mtInformation, [mbok], 0);
btMostrarDatos.SetFocus;
end;
end;
procedure TformResetearAutoincremento.btSeleccionarClick(Sender: TObject);
begin
if dlAbrir.Execute then
txtTabla.Text := dlAbrir.FileName;
end;
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A