Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Error al Insertar muchos registros (https://www.clubdelphi.com/foros/showthread.php?t=84664)

GustavoCruz 19-11-2013 16:16:54

Error al Insertar muchos registros
 
Hola amigos del foro, necesito de vuestra ayuda.
En una tabla como esta
Código SQL [-]
  CREATE TABLE PACIENTES (
    TIPODOCUMENTO    T15 NOT NULL /* T15 = VARCHAR(15) */,
    NUMERODOCUMENTO  CODIGOTEXTO NOT NULL /* CODIGOTEXTO = VARCHAR(20) NOT NULL */,
    APELLIDO1        T30 /* T30 = VARCHAR(30) */,
    APELLIDO2        T30 /* T30 = VARCHAR(30) */,
    NOMBRE1          T30 /* T30 = VARCHAR(30) */,
    NOMBRE2          T30 /* T30 = VARCHAR(30) */,
    NOMBRECOMPLETO   T120 /* T120 = VARCHAR(120) */,
    SEXO             T20 /* T20 = VARCHAR(20) */,
    NACIMIENTO       FECHAS /* FECHAS = DATE default 'now' */,
    EPSCODIGO        CODIGOTEXTO /* CODIGOTEXTO = VARCHAR(20) NOT NULL */,
    MUNCODIGO        CODIGOTEXTO /* CODIGOTEXTO = VARCHAR(20) NOT NULL */,
    DEPCODIGO        CODIGOTEXTO /* CODIGOTEXTO = VARCHAR(20) NOT NULL */,
    TIPOAFILIADO     T20 /* T20 = VARCHAR(20) */,
    ZONA             T15 /* T15 = VARCHAR(15) */,
    DIRECCION        T120 /* T120 = VARCHAR(120) */,
    TELEFONOS        T60 /* T60 = VARCHAR(60) */,
    CLASEEPS         CODIGONUMERICO /* CODIGONUMERICO = INTEGER NOT NULL */,
    ESCOLARIDAD      T120 /* T120 = VARCHAR(120) */,
    OCUPACION        T15 /* T15 = VARCHAR(15) */,
    ESTADOCIVIL      T30 /* T30 = VARCHAR(30) */
);




/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE PACIENTES ADD PRIMARY KEY (TIPODOCUMENTO, NUMERODOCUMENTO);
Le inserto 85000 registros; y una vez terminada la inserción y quiero ver los datos, me lanza este error:

execution caused by a system error that precludes successful execution of subsequent statements.
Database file appears corrupt (C:\MIS DOCUMENTOS\SYSFARMA\REPORTES\BASE.FDB).
Wrong page type.
Page 1862 is of wrong type (expected 5, found 7).

SQL Code: -902
IB Error Number: 335544335

Qué debo hacer?
La definición de la base de datos es esta
Código SQL [-]
SET SQL DIALECT 3;

SET NAMES UTF8;

CREATE DATABASE 'localhost:C:\Mis documentos\SysFarma\Reportes\BASE.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET UTF8 COLLATION UTF8;

Gracias por vuestra ayuda

marcoszorrilla 19-11-2013 19:39:24

No dices como los insertas, si con un insert de SQL o con código desde Delphi, en este último caso yo utilizo un contador que por ejemplo, provoca un "commit" cada 1000 registros

Un Saludo.

GustavoCruz 20-11-2013 03:36:25

Hola marcoszorrilla, inicialmente los hice con un commit cada 1000 registros desde una aplicación que hice para el caso específico de la tabla, y me salió el error. Así que descargué el ems ib manager y cargué los registros y nuevamente me salió el error, hice varias copias de la base de datos para hacer las pruebas.
Normalmente el error ocurre, cuando quiero recorrer la tabla, en el registro 57602.

No se qué hacer necesito ayuda. Como dato curioso tengo otra tabla, en la misma base, a la que le he insertado 180000 registros y todo está normal

Gracias por vuestro tiempo

Casimiro Notevi 20-11-2013 12:51:48

Está dañada, prueba con un backup/restore

pacopenin 20-11-2013 12:56:51

Prueba lo que dice Casimiro.

GustavoCruz 20-11-2013 16:35:43

Hola amigos del foro, efectivamente está dañada... me quise conectar a ella, y me aparece el error que dice que el archivo está corrupto:(
y ahora quién podrá ayudarme!!! :confused:

He leído una serie de archivos que encontré en internet, y los otros hilos que tratan sobre fdb corruptas, pero no nada de nada, probé con backup/restore y el problema persiste...

Gracias por vuestro tiempo

Casimiro Notevi 20-11-2013 17:36:18

Primero de todo, con todas las conexiones cerradas, haces una copia y la guardas, tal y como está, dañada, y no la toques, trabajas con la copia.

Y después, paso a paso y nos informa de los mensajes, es que eso de "probé, pero nada", no nos dice nada :confused:

GustavoCruz 20-11-2013 17:44:01

Muchísimas gracias Camisiro, haré como me indicas y luego les comento...

pacopenin 20-11-2013 17:48:53

Hay bastantes hilos que analizan posibles soluciones como éste hilo. En las sugerencias que aparecerán al final de la página hay más. Y haz caso a lo que dice Casimiro: siempre con una copia, y ve diciendo los mensajes que salen con cada prueba. Y suerte.

GustavoCruz 20-11-2013 20:03:40

Hola, tomé una de las copias que tenía y utilizando una herramienta del ems ibmanager intenté reparar la base, luego hice un backup/restore que para mi salud mental todo salió bien; pero no me quiero quedar con esta solución, porque me asusta el pensar que pueda ocurrir nuevamente.

Gracias por vuestro tiempo...

Nota: no puede solucionar el problema por consola y quisiera aprender a hacerlo. Si alguien me quiera hacer el favor y agradecería mucho...

De nuevo mil gracias por vuestro tiempo

ecfisa 20-11-2013 20:26:58

Cita:

Empezado por GustavoCruz (Mensaje 469862)
Nota: no puede solucionar el problema por consola y quisiera aprender a hacerlo. Si alguien me quiera hacer el favor y agradecería mucho

Hola Gustavo.

Te pongo unos enlaces que tratan sobre lo que solicitas:
Saludos :)


La franja horaria es GMT +2. Ahora son las 22:19:45.

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