Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
Exclamation Error con insert en firebird 2.4

Hola amigos, os molesto nuevamente, estoy tratando de hacer una incercion asobre firebird, pero me da un error, hasi que decidi hacerlo mediante codigo SQL(una prueba), desde el ems little, pero me sale un mensaje de error.

aca el codigo
Código SQL [-]
INSERT INTO GRADUADOS(
GRADUADOS.CODIGO,GRADUADOS.CODIGO_PLANTEL
,GRADUADOS.N_ACTA_MATRICULA,GRADUADOS.NOMBRES
,GRADUADOS.CI,GRADUADOS.SEXO,GRADUADOS.CALIFICACION
,GRADUADOS.FECHA_GRADUACION,GRADUADOS.OBSERVACIONES
,GRADUADOS.NIVEL_EDUCACION,GRADUADOS.ANIO_LECTIVO)
VALUES(1,"123",1,"JOSE","150057736-4","1",
17,"15/07/1999","OLA","PRIMARIA","1998-1999")

y aca la excepcion
Código SQL [-]
ARITMETIC OVERFLOW OR DIVISION BY ZERO HAS OCURRED.
ARITMETIC EXCEPTION, NUMERIC OVERFLOW, OR STRING TRUNCATION

Por favor os agradeceria su ayuda en explicarme en que estoy fallando
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #2  
Antiguo 17-02-2009
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
Esto te dice que tienes uno de los siguientes porblemas:

- Has dividipo por 0. Revisa los triggers que hagan algún cálculo.

- Has metido un número demasiado grande. Revisa el tipo de campo. (smallint llega a 65.535)

- Has metido una cadena demasiado larga. Revisa los campos y verifica que quepa lo que le envías. Por ejemplo CODIGO_PLANTEL podría estar definido como varchar(2) y le envías "123" (3 caracteres)

Además, veo que la fecha que pasas es "15/07/1999"
El formato, si está separado por / es mm/dd/aaaa, por lo que estás enviando día 7 del mes 15 del año 1999.
Si el separador es - (un signo menos) el formato es dd-mm-aaaa
Si el separador es . (un punto) el formato es aaaa.mm.dd

(Los dos últimos los digo de memoria y puede que se alrevés)

Última edición por duilioisola fecha: 17-02-2009 a las 17:06:36.
Responder Con Cita
  #3  
Antiguo 17-02-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, a parte de lo que te dice duilioisola, utiliza comillas simples en vez de dobles.

Cita:
Empezado por duilioisola Ver Mensaje
Si el separador es - (un signo menos) el formato es dd-mm-aaaa
Si el separador es . (un punto) el formato es aaaa.mm.dd

(Los dos últimos los digo de memoria y puede que se alrevés)
Es a reves, aaaa-mm-dd y dd.mm.aaaa

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 17-02-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
Ok

Bueno tienes razon en lo de las longitudes, me he equibocado en la longitud de la cadena CI que es de 11 pero el campo CI era Varchar(10), ya lo modifique en la tabla.
Y al ejecuatr el ejemplo desde EMS little no hay problemas.

el error me persiste al intentar realizar el ingreso desde mi aplicacion

bueno la aplicacion la estoy realizando en .net 2005 por requerimiento del cliente el codigo es
Código PHP:
 string sexo "1";
                if (
rbtnHombre.Checked == true)
                { 
sexo "1"; };
                if (
RbtnMujer.Checked == true)
                { 
sexo "2"; };
                
string anio txtAnio+nudAnio.Value.ToString();

                
string sql "INSERT INTO GRADUADOS("+
                            
"GRADUADOS.CODIGO,"+
                            
"GRADUADOS.CODIGO_PLANTEL"+
                            
",GRADUADOS.N_ACTA_MATRICULA"+
                            
",GRADUADOS.NOMBRES"+
                            
",GRADUADOS.CI"+
                            
",GRADUADOS.SEXO"+
                            
",GRADUADOS.CALIFICACION"+
                            
",GRADUADOS.FECHA_GRADUACION"+
                            
",GRADUADOS.OBSERVACIONES"+
                            
",GRADUADOS.NIVEL_EDUCACION"+
                            
",GRADUADOS.ANIO_LECTIVO)"+
                            
"VALUES(NULL,"+
                            
"@CODIGO_PLANTEL"+
                            
",@N_ACTA_MATRICULA"+
                            
",@NOMBRES"+
                            
",@CI"+
                            
",@SEXO"+
                            
",@CALIFICACION"+
                            
",@FECHA_GRADUACION"+
                            
",@OBSERVACIONES"+
                            
",@NIVEL_EDUCACION"+
                            
",@ANIO_LECTIVO)";
               
BaseDatos db = new BaseDatos();
                try
                {
                    
db.Conectar();
                    
db.CrearComando(sql);
                    
db.AsignarParametroCadena("@CODIGO_PLANTEL""123");
                    
db.AsignarParametroEntero("@N_ACTA_MATRICULA"int.Parse(txtActa.Text));
                    
db.AsignarParametroCadena("@NOMBRES"txtNombre.Text);
                    
db.AsignarParametroCadena("@CI"txtCedula.Text);
                    
db.AsignarParametroCadena("@SEXO"sexo);
                    
db.AsignarParametroEntero("@CALIFICACION"int.Parse(txtCalificacion.Text));
                    
db.AsignarParametroCadena("@FECHA_GRADUACION"mtxtFecha.Text);
                    
db.AsignarParametroCadena("@OBSERVACIONES"txtObservaciones.Text);
                    
db.AsignarParametroCadena("@NIVEL_EDUCACION""PRIMARIA");
                    
db.AsignarParametroCadena("@ANIO_LECTIVO"anio);
                    
db.EjecutarComando();
                    
db.ConfirmarTransaccion();
                }
                catch(
Exception ex)
                {
                    
db.CancelarTransaccion();
                    
MessageBox.Show("no se ingreso"+ex.Message.ToString());
                }
                
finally db.Desconectar(); }
            }
            catch { 
MessageBox.Show("no se ejecuta"); } 
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #5  
Antiguo 17-02-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
Smile Ha

Gracias por tu pronta respuesta
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
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
error en insert into arespremium MySQL 0 30-08-2007 23:06:59
Error en insert into rhasshid SQL 4 23-04-2007 07:31:23
Error en Insert francisco260184 SQL 2 06-04-2007 04:40:11
Error al hacer insert (campo fecha) en firebird con fibplus Acanol Firebird e Interbase 7 15-06-2006 09:05:07
Sql Error: error cannot insert a duplicate......................... inexperto SQL 2 04-06-2004 12:54:59


La franja horaria es GMT +2. Ahora son las 12:16:23.


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