![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#21
|
||||
|
||||
|
Buenas de nuevo.
He empezado con las pruebas, el insert a la tabla general ha funcionado de maravilla, en un tiempo record tanto desde el IBConsole como desde Delphi, un problema menos. Luego intento ejecutar el script siguiente en IBConsole y me da error at line 1 - conversion from string""
Creo que he seguido al pie de la letra las instrucciones de escritura del script en cuestión. No se donde puedo haberme equivocado. Gracias por vuestro tiempo Josep |
|
#22
|
||||
|
||||
|
Desconozco los componentes IB*, pero si con el ibconsole funciona... No se sí habrá algún otro componente de esa familia que te permita hacerlo.
Si no es así puedes hacer una store procedure e invocarla desde el programa. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#23
|
||||
|
||||
|
Hola.
El error lo da en IBConsole, no en el componente. Cita:
Saludos |
|
#24
|
||||
|
||||
|
Ok, no entendí bien. Por lo que te dice, estás intentando cargar un campo de un tipo en otro campo de otro tipo. Tendrás que identificar el campo y hacer un cast para convertirlo al tipo de dato necesario.
En definitiva, que dorsal coincida con el tipo de C1y así sucesivamente. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#25
|
||||
|
||||
|
Por cierto, puedes crear la base de datos con el 'character set' que quieras y te ahorras ponerlo en cada campo.
Además creo recordar (ahora mismo no estoy seguro) que también puedes poner el 'collate' en la creación de la bd.
También te puedes ahorrar poner los nombres entre comillas y entonces dará igual que los escribas en mayúsculas o minúsculas. Y si además usas dominios, entonces mucho más cómodo, pero eso lo dejo para otro momento ![]() Te lo comento porque me parece "un trabajo de chinos" repetir tantas veces lo mismo y estar pendiente de las comillas, mayúsculas, minúsculas, etc.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#26
|
||||
|
||||
|
He comparado las tablas y los campos C1 y C6 tienen diferente tipo que los datos en los que se cargan en la tabla destino. Tendrás que hacer un cast.
Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#27
|
||||
|
||||
|
Buenos dias a todos.
Viendo la respuesta de anoche, he efectuado el cambio en el campo COD_CAT, pasandolo a Integer en la tabla temporal, el otro campo DORSAL, sencillamente lo he quitado del Insert y al hacer la prueba en IBConsole ya no da el error de conversion, pero no tarda 15 segundos, se colapsa y lo aborto
Ahora si que me veo superado, yo que pensaba que iba por buen camino y que al final el San Benito saldría del taco de madera y por lo que veo me queda solo la astilla, (chiste antiguo malo, jejeje) NOTA: En IBConsole lo he dejado en marcha más de 8 minutos y nada, no acaba. En IBExpert más de lo mismo. Saludos Josep Última edición por jafera fecha: 18-07-2013 a las 11:32:04. |
|
#28
|
||||
|
||||
|
Una pregunta...
cuanto tarda la select del insert ? Sólo la select
y abusando un poco otra pregunta. Nos puedes poner los indices de las dos tablas ? Me da que no tendría que tardar casi nada, algo no está suficientemente ajustado. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#29
|
||||
|
||||
|
Debería poner el código fuente de tu programa y datos para hacer pruebas, aunque ya sé que no puedes hacer eso.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#30
|
||||
|
||||
|
La consulta select se hace bastante rapido, pero si lugo toco en el grid donde se muestran los datos en IBConsole, se cuelga.
El código fuente se podria poner, pero no creo que sea lo conveniente ya que aun está bastante verde el tema y el prpopósito del programa es muy especifico y no se si le servirá a mucha gente, talvez para chafardear solo. Lo que si puedo hacer es conectar con alguien con teamwiever o similar y verlo en directo El tema índices, pues las tablas temporales no tienen y la definitiva tampoco, no se exactamente donde crearlos Saludos Josep |
|
#31
|
||||
|
||||
|
Cita:
Puedo suponer que no tendría que haber más de un ciento de corredores nuevos. Recuperarlos tendría que ser casi inmediato. Insertar hasta 300 registros... no sé, algo se nos escapa. A ver qué nos responde jafera. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#32
|
||||
|
||||
|
Creo que lo que tarda es en devolver el select.
Os he dicho que era rápido epro solo los primeros registros, he hecho otra prueba y si navego por el grid, se me va parando a medida que voy bajando el curor. Si intento bajar la scrollbar de golpe es cuando se cuelga. No seran unos cientos registros, creo que seran unos miles. Me da la sensación de que es como si estuviera procesando los registros del select en bloques de unos 30 registros. Saludos Última edición por jafera fecha: 18-07-2013 a las 14:04:47. |
|
#33
|
||||
|
||||
|
Cita:
1. Revisa las tablas involucradas en la insert. Hablabas anteriormente de CTR0003, CTR0003E y CTR0003C, y no se´si por error hemos utilizado otras. 2.- ON (CTR0003C.C8 = CTR0003.DNI) Aquí supongo que te falta añadir el campo CODI_CAT, ya que según observabas en otra ocasión este campo interviene. 3.- Crea índices para CTR0003.DNI, CTR0003C.C8, CTR0003.CODI_CAT y CTR0003C.C6 y vuelve a ejecutar la select. Esto tiene que volar !!!! Si quieres probar rápido, omite el paso 2 y por sólo los índices para CTR0003.DNI y CTR0003C.C8. Queremos resultados YA !! ![]() Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#34
|
||||
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Ole, ole y ole. Creo que se ha solucionado, indices, indices e indices. Yo confundia indices con primary_key. He puesto los indices en el campo referencia al DNI de las tres tablas et voilà los segundillos que decias. Ufff que alivio más grande ya ni tiro la toalla ni abandono el barco como las ratas....... Muchisimas gracias Josep |
|
#35
|
||||
|
||||
|
Eres un crack...
![]() Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#36
|
||||
|
||||
|
Como norma general, al menos deberían generarse índices para :
0.- Las primary keys , cuyos ínidices se generan automáticamente. 1.- Aquellos campos por los que se cruza información con otras tablas. Estos son todos los que participan en las JOIN entre tablas. Generalmente coinciden con foreign-keys. 2.- Indice sin repetición en el campo descripción para todas las tablas maestras tipo clave - descripción. 3.- Aquellos campos por los que se ordena habitualmente: nombre, población, ... Se debe tener en cuenta que añadir demasiados índices ( digo demasiados, no los necesarios ) puede ralentizar las inserciones. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#37
|
||||
|
||||
|
Queriais resultados?
Pues aquí van los resultados cronometrados igual que una carrera, jejeje... 1-Inserción de 63.000 registros procedentes de fichero txt nacional, borrado de los registros que cumplan una condición, consulta para actualizar el campo nacionalidad y el campo fecha de nacimiento, (datos procdentes del codigo UCI) 15 segundos. 2-Inserción de 30.000 registros procedentes de fichero txt autonomico, borrado de los registros que cumplan una condición, consulta para actualizar el campo nacionalidad y el campo fecha nacimiento, (datos procedentes del codigo UCI) 5.5 segundos. 3-Insertar los 30.000 registros que quedan en la tabla temporal nacional a la tabla definitiva 9 segundos. 4-Insertar de los 4.000 registros que quedan en la tabla autonomica y que no esten en la definitiva 3 segundos. Ni me lo puedo creer, lo he realizado 7 u 8 veces porque me parecia imposible. Que contento estoy!!!!!!!! Como ya he dicho en algún que otro hilo anterior, pues eso, que MUCHAS GRACIAS!!!!!! y lo digo así de alto que no chillando. Saludos calurosos desde la Costa Brava Josep |
|
#38
|
||||
|
||||
![]() .
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#39
|
||||
|
||||
|
Te ha costado pero por fin lo has conseguido.
![]() Por aquí también mucho calor y mucha humedad, vamos, todo el día sudando. Sigue informando. Ahora planteare hacer la carga directamente desde los ficheros txt !! Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#40
|
||||
|
||||
|
Ah, y a ver sí gana algún paisano del Euskaltel alguna etapa del Tour
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Aportación del código de un stored procedure para conversión literal de números | birmain | Firebird e Interbase | 12 | 16-07-2015 19:12:29 |
| Insertar desde una tabla con loop en stored procedure | Fita | Firebird e Interbase | 2 | 04-06-2013 00:39:23 |
| Problema con Stored Procedure para actualizar tabla con datos de otra tabla. | Adrian Murua | MySQL | 4 | 04-02-2012 02:54:49 |
| Insertar en Un Stored Procedure | DasGrun | Firebird e Interbase | 7 | 13-12-2011 23:46:20 |
| Stored Procedure !!! | Ledian_Fdez | C++ Builder | 0 | 02-03-2010 14:01:29 |
|