Error Eb Base De Datos Sqlite3


Objetivo: Error Eb Base De Datos Sqlite3
hola estoiy practicando y no se porque me sale este error al querer guardar info en la base sqlite3.
mi gambas es 2.19
mi error es: cannot create record: abort due to constraint violation

me indica con lugar en el codigo VarResult.Update

si alguien tiene alguna idea...


PUBLIC SUB BtnGuardar_Click()

DIM VarResult AS Result
VarResult = Conexion.Create("Contactos")
VarResult["Nombre"] = txtNombre.Text
VarResult["Apellido"] = txtApellido.Text
VarResult["Fecha_Nacimiento"] = txtNacimiento.Text
VarResult["Direccion"] = txtDireccion.Text
VarResult["Telefono"] = txtTelefono.Text
VarResult["Mail"] = txtMail.Text
VarResult.Update
TablaContactos = Conexion.Exec("Select * from Contactos")
BtnGuardar.Visible = FALSE
BtnCancelar.Visible = FALSE

END

pantallazo

estoy usando ubuntu 10.4 version final

atte: sergio

Objetivo: Re: Error Eb Base De Datos Sqlite3
Ese mensaje indica que intentas crear un registro que no cumple las relaciones de la base de datos (no tiene campo índice, o uno de sus campos es clave externa de otra tabla que no tiene registro relacionado, etc.) Si no nos pasas la estructura de tu base de datos no puedo decirte más.

Perfil MP  
Objetivo: Re: Error Eb Base De Datos Sqlite3
Hola!.

Yo tengo el mismo problema.

Aquí puedes ver el tutorial:

http://www.mileti.com.ar/apuntes/gambas_sqlite.pdf

También estoy con la base de datos del libro de gambas y lo que encuentro es que el
botón de guardar del formulario FData funciona perfectamente pero luego no guarda los datos.

PUBLIC SUB BtnAceptar_Click()

IF Editando THEN
TRY HResul["titulo"] = TxtTitulo.Text
TRY HResul["autor"] = TxtAutor.Text
TRY HResul["fecha"] = TxtFecha.Text
TRY HResul["precio"] = TxtPrecio.Text
TRY HResul["descripcion"] = TxtDecripcion.Text
TRY HResul.Update()
ELSE

TRY hConn.Exec("insert into datos values (&1,&2,&3,&4,&5)", TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)

ENDIF

ME.Close()

CATCH
Message.Error("Imposible introducir los datos solicitados")

END


"Editando" permite o bien editar los campos o crear un registro nuevo.
Puedo editar los registros desde el formulario Fdata, pero no crea uno nuevo desde el mismo.

Es en el Sqlite3. Los permisos de la base de datos son de lectura y escritura para el propietario,
para el grupo de lectura (también cambie esto, pero no funciono).

En cuanto a componentes activo gd.db. Antes activaba el de gd.db.sqlite3, pero parece que no es totalmente necesario,
que el propio interprete lo carga cuando le dices que tipo de bdd usas.

Objetivo: Re: Error Eb Base De Datos Sqlite3
La variable "Editando" suponemos que es booleana y debería valer True al momento de insertar los datos. No sabemos donde has asignado su valor previamente, así que chequea ese detalle.

Por otra parte, y a menos que sea estrictamente necesario, evita las sentencias "Try", puesto que sin comprobar después si hay un error (con IF ERROR THEN...), nunca sabrás donde falla tu programa y se ejecutará hasta el final sin aparentes errores y sin poder determinar porqué no funciona.

Hay que tener en cuenta que el manejo de errores es una técnica que tiene su ciencia, no sólo sirve para hacer que nuestro programa "no se queje", sino que en cierto modo sirven como estructuras de control de flujo y por supuesto también para controlar errores "previstos". Lo ideal sería que no fueran necesarias porque nuestro programa estuviera suficientemente bien pensado como para no producirse ningún error, así que mi consejo (si se me permite darlo) es que no abuséis del TRY.

Saludos

Perfil MP  
Objetivo: Re: Error Eb Base De Datos Sqlite3
Hola Jesus.

Pero es que no hay programa perfecto que no tenga errores cuando comienzas a hacerlo.

Entonces mas o menos se podría ver donde falla con mucha depuración (imagina si el programa es extenso ).
Hoy te lanzan el programa al mercado y aun no ha sido ni finalizado de depurar, desde juegos a sistemas como
psss...wind..ejem.

Que muchos miran antes el $ que al usuario.A saber la presión que tienen los programadores por parte del
que lo comercializa.

Lo que si veo del libro es que tiene sus fallos de imprenta, el código del programa de bdd es mas extenso.
Al final del tema, mete el código de los dos formularios y se olvidan de una comparación en el formulario principal
en la función que carga la base de datos.

Ejemplo:

if HConn then Return False

Así me da error. Cuando al principio se puso:

if HConn<>NULL then Return False

Realmente para los que empezamos nos quedamos a cuadro. Es como si tu maestro te enseñara con errores
y el alumno tuviera los mismos errores que su maestro.Y así en cadena.

Que si, que no somos perfectos.

En alguna parte del código del programa se cierra antes la base de datos, haciéndose nula la conexión y
no escribe el registro el formulario de entrada de datos.

Por la tarde cree una base muy simple y pude escribir registros en ella.

F8 es un ayuda.

Objetivo: Re: Error Eb Base De Datos Sqlite3
Parece que le falta el campo clave.

Lo pone numérico en el ejemplo.

TRY hConn.Exec("insert into datos values (&1,&2,&3,&4,&5)", TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)

Hay un parámetro de menos.

hConn.Exec("insert into datos values (&1,&2,&3,&4,&5,&6)",aqui, TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)

Probé a meter un numero que continuase con el numero de registros y funciono.
¿ Habria que saber el numero de registros e ir añadiendo ahí. ? ¿ Eso es necesario ?.¿ No lo hace automáticamente ?.

Encuentro también que cuando crea la base de datos con el gestor y comienza a mostrar las consultas en SQL.
Usa comillas doble y son simples.

A toda una consulta que pone:

insert into datos values ("El lazarillo de Tormes","Anónimo",2005-02-03,20.91,"Novela")

Deberia ser:

insert into datos values ('indice' , 'El lazarillo de Tormes' , 'Anónimo' , '2005-02-03' , '20.91' , 'Novela')

Objetivo: Re: Error Eb Base De Datos Sqlite3
hola Shell

como estas. te cuento que cuando hice la pregunta esta era porque me salia un error al tratar de escribir en la base de datos.

lo único que hice para solucionar el error fue solamente dejar la key en autoincremento, y listo

lo otro y espero no tomes a mal lo que voy a decir, pero los libros como el libro de gambas no tienen errores, el libro es un libro de que lo único que hace el escritor es.

mostrar la cualidades de gambas, si bien es cierto lo demuestra con ejemplos prácticos que no tienen porque ser 100 por ciento funcional, la idea de cualquier maestro de buena calidad es dar una buena clase antes de la practica y si esto lo da el libro,

por lo que si hay errores en los ejemplos practico con el conocimiento adquirido anteriormente no tendrías problemas en saber donde esta el error y saber solucionarlo.

espero haberte ayudado. y no te ofendas por mis palabras, que pienso lo mismo como dijo alguien por alli "Todos Somos Ignorantes lo que pasa que no todos Ignoramos la mismas Cosas",

Saludos.

Objetivo: Re: Error Eb Base De Datos Sqlite3
el error que veo es de value que lo tienes separado y no coge la sentecia
values(&1,&2,&3)",text1.

y si lo tienes lo mismo del codigo que pone aqui
lo tienes asin
values (&1,&2,&3)",

y si no te sirve y a lo mejor digo una giglipollez pero en vez de Exec escribe exec haber si asin sale

Perfil MP  
Objetivo: Re: Error Eb Base De Datos Sqlite3
Hola a todos.

David: No, no es eso.

El fallo es la instrucción que no esta completa del todo.O que lo digan gente con mas idea que nosotros.
Estamos para equivocarnos y aprender.

Quillo, que chico es el mundo, no sabia que había gente de Cai por aquí.
Que buen surtido de programación hay en el Puerto.

Sergio:
Efectivamente poniendo en auto el campo índice de la tabla de la agenda se soluciona el problema,
pero no lo rectifica el que lo crea, no se mejora. Pero añade en el pdf que es profesor y como decimos en Cadiz,"me tiro todo el pegote",
La solución era fácil.

Gracias al "profesor" Benotti encontrare una solución a la base del ejemplo del libro de gambas.
Su articulo también es breve y conciso.

Perdona que discrepe, pero el libro tiene sus errores.Y no me tomo a mal tu comentario.El manual de gambas
no es "la biblia de gambas".Y los escritores se equivocan, como me equivoco yo, como te equivocas tu, o el mas
listo entre los listos.

Es un manual sencillo y bueno.Un manual por el que pague 28€+gastos de envío.
La lastima es que no haya mas libros de gambas.Pero esto en el software libre parece un problema
bastante gordo, si no va acompañado de marcas que luego abandonan a su producto y a sus usuarios.
Asegurando la compatibilidad..pffffff.Aun asi, vuelven a picar y "viva la pepa",aplauden con las orejas
los de la gran marca.

Pero la corriente es comprar lo que compra lo que dice la gran empresa, por que quien
se va a gastar "los cuartos" en un proyecto que no esta avalado por el "$".Se arriesgan las empresas?,
los fabricantes?. Vamos a cambiar el mundo?.No ponen dinero, no hay mas material que el del tu a tu,
el que te tiras de cabeza a la piscina, luchando y defendiendo en lo que crees.

Lo único que pretendía era aprender a crear una base de datos en gambas.
No estoy quejoso de Gambas.Estoy quejoso de que al dar los primeros pasos, de traspiés.

Y continuar seria off-topic.

Un abrazo Sergio.

Y que me perdone el moderador que me estoy alargando un montón y estoy fuera de temática. O:-)


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3822s (PHP: -80% SQL: 180%)
Consultas SQL: 45 - Debug off - GZIP Activado