Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2011
Avatar de turbopascual5.0
turbopascual5.0 turbopascual5.0 is offline
Miembro
 
Registrado: feb 2011
Posts: 54
Poder: 14
turbopascual5.0 Va por buen camino
problema alter table

Hola a todos.

tengo un excel , con una columna de 380 filas aprox de datos, que voy leyendo y pasando a sqlexpress con un alter table add para crear la definición de los campos de la tabla, aproximadamente al llegar al 350 me da el siguiente error:

Error al crear o modificar la tabla 'tarifa' porque el tamaño de fila minimo seria 8078, incluidos los 295 bytes de sobrecarga interna, esto supera el tamaño maximo permitido de 8060 bytes para las filas de tabla.

¿una limitación intrínseca de sqlexpress?

Si es así me podría plantear utilizar otra base de datos, siempre que sea gratuita y no tenga estos problemas.
Pero deberían correr ambas en el mismo server, me sería complicadísimo migrar las tablas ya existentes , modificar aplicaciones, etc, etc.

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 01-03-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Parece ser que el tamaño de todos los campos supera 8060 bytes.
Me parece extraño tener una tabla que tenga 380 campos. ¿Es esto lo que has querido decir?
Explícanos qué tipo de información guardas en esa tabla excel y quizás te ayudemos con una forma distinta de encarar el problema.

Si de todos modos debe ser una tabla de 38 campos, habría que ver de qué tipo y de qué tamaño es cada uno.
Si son todos varchar(20) puedes tratar de ver si la información de cada campo te cabe también en un varchar(15). Esto haría que cupieran más campos.

Del mismo modo, si estas guardando numeros en formato varchar(xx), te convendría guardarlos directamente com smallint, integer, double precision o number(x,y).
Responder Con Cita
  #3  
Antiguo 01-03-2011
Avatar de turbopascual5.0
turbopascual5.0 turbopascual5.0 is offline
Miembro
 
Registrado: feb 2011
Posts: 54
Poder: 14
turbopascual5.0 Va por buen camino
8060 bytes ¿quien necesita mas?

Cita:
Empezado por duilioisola Ver Mensaje
Parece ser que el tamaño de todos los campos supera 8060 bytes.
Me parece extraño tener una tabla que tenga 380 campos. ¿Es esto lo que has querido decir?
Explícanos qué tipo de información guardas en esa tabla excel y quizás te ayudemos con una forma distinta de encarar el problema.

Si de todos modos debe ser una tabla de 38 campos, habría que ver de qué tipo y de qué tamaño es cada uno.
Si son todos varchar(20) puedes tratar de ver si la información de cada campo te cabe también en un varchar(15). Esto haría que cupieran más campos.

Del mismo modo, si estas guardando numeros en formato varchar(xx), te convendría guardarlos directamente com smallint, integer, double precision o number(x,y).
Hola.

Sí es una tabla de 380 campos, nvchar(50). Es una tabla con una tarifa de mobiliario, hay 380 tipos de muebles diferentes (380 campos ) y cada registro contiene los 380 precios de cada modelo (habrá finalmente unos 300 modelos).

Mi duda es:

El límite de 8060 bytes será por cada registro de la tabla, es decir, el tamaño de los 380 nvchar(50) no pueden superar la mencionada capacidad?

Por lo que veo tengo varias opciones:

* Ajustar el tamaño de campo
* Partir la tabla en dos o tres, lo que me será un soberano coñazo al llegar a la parte de presupuestos, tendré que duplicar o triplicar el código.
*Probar con otra BD ¿mysql?.........

Perdonad si en algun momento hay algún planteamiento incorrecto, hace ya muchos años que no programo y me estoy haciendo un programa para mi empresa en mi tiempo libre (cosas de la crisis), provengo de programar BD "a pelo", con estructuras de datos propias, etc, etc . La verdad es que estoy maravillado, localizar un valor o un subconjunto de valores con una sentencia sql ! , pero si yo lo hacía implementando un algoritmo quicksort a golpe de línea de código !, y sin internet (no existía), sin ayuda, sin nadie que te eche una mano .

Muchas gracias a todos de antemano
Responder Con Cita
  #4  
Antiguo 01-03-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No se que base de datos utilizas. (creo que nvchar(xx) es de SQL Server y Oracle).

Si lo que te llega en cada campo es un precio, lo mejor sería tratarlo como un número y no como un string.

MySQL no es gratis. Deberás pagar una licencia.
Firebird es una opción verdaderamente gratuita (y la que te recomendaria).
No conozco PostgreSQL, pero también tiene una licencia gratuita.

Última edición por duilioisola fecha: 01-03-2011 a las 09:26:43.
Responder Con Cita
  #5  
Antiguo 01-03-2011
Avatar de turbopascual5.0
turbopascual5.0 turbopascual5.0 is offline
Miembro
 
Registrado: feb 2011
Posts: 54
Poder: 14
turbopascual5.0 Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
No se que base de datos utilizas. (creo que nvchar(xx) es de SQL Server y Oracle).

Si lo que te llega en cada campo es un precio, lo mejor sería tratarlo como un número y no como un string.

MySQL no es gratis. Deberás pagar una licencia.
Firebird es una opción verdaderamente gratuita (y la que te recomendaria).
No conozco PostgreSQL, pero también tiene una licencia gratuita.
Vaya fallo, prueba que te prueba...... y no me fijo , sí , tienes razón, son números, reales. Probaré .

Vaya, creía que MySql era gartuita, pues de licencias nada de nada. Si no me salgo tiraré por Firebird.

Gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Borrar todas la columnas menos una, se puede con alter table? sakuragi MySQL 2 31-07-2007 18:38:04
alter table y default jonmendi SQL 1 10-11-2005 17:32:05
alter table error JoseQ Firebird e Interbase 4 13-08-2004 20:47:45
Alter Table Firebird sur-se Firebird e Interbase 2 26-07-2004 15:33:17
alter table / modify -> Problemas en tablas dbase Jose_Pérez SQL 6 17-11-2003 09:24:34


La franja horaria es GMT +2. Ahora son las 08:35:52.


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
Copyright 1996-2007 Club Delphi