|
Página 1 de 2
|
Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un...
Autor |
Mensaje |
leonel
Usuario
Registrado: Abril 2014
Mensajes: 31
Edad: 35
|
Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Hola buenos dias a todos mis compañero del foro estoy realizando un programa muy parecido al de daniel calleja y todo me funciona bien pero lo unico que no entiendo es por que al tratar de registrar nuevos datos en mi formulario no me los guarda pero lo mas curioso es que si me lo edita :X? este el codigo con mucha humildad espero que por favor me ayuden..
Public Sub btnaceptar_Click()
If editando Then
hresul["Codigo_Envio"] = txtcodigo_envio.Text
hresul["Nombre_Emisor"] = txtnombre_emisor.Text
hresul["Cedula_Emisor"] = txtcedula_emisor.Text
hresul["Pais_Ciudad_Origen"] = txtpais_cuidad_origen.Text
hresul["Nombre_Receptor"] = txtnombre_receptor.Text
hresul["Cedula_Receptor"] = txtcedula_receptor.Text
hresul["Fecha_Envio"] = txtfecha_envio.Text
hresul["Fecha_Entrega"] = txtfecha_entrega.Text
hresul["Codigo_Despacho"] = txtcodigo_despacho.Text
hresul["Ruta_Cartero"] = txtruta_cartero.Text
hresul["Peso_Paquete"] = txtpeso_paquete.Text
hresul["Costo_Envio"] = txtcosto_envio.Text
Try hresul.Update
Else
Try hconn.EXEC("insert into servicios values (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10,&11,&12,&13)", Null, txtcodigo_envio.Text, txtnombre_emisor.Text,
txtcedula_emisor.text, txtpais_cuidad_origen.Text, txtnombre_receptor.Text, txtcedula_receptor.Text, txtfecha_envio.Text, txtfecha_entrega.Text,
txtcodigo_despacho.Text, txtruta_cartero.Text, txtpeso_paquete.Text, txtcosto_envio.Text)
Endif
Me.Close()
Catch
Message.Error("Imposible introducir los datos solicitados")
End
Nota: uso gambas 3.5 y ubuntu 13.10
última edición por jguardon el Jueves, 10 Abril 2014, 22:36; editado 3 veces
Editado por jguardon, Jueves, 10 Abril 2014, 22:36: movido al foro bases de datos desde controles y bibliotecas
|
#1 Jueves, 10 Abril 2014, 17:03 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Leonel:
Try hconn.EXEC("insert into servicios values (&1,&.....
Quitala el comando "Try" a esta linea, y veras que se produce une error... a ver cual es.
Saludos
|
#2 Jueves, 10 Abril 2014, 17:12 |
|
|
leonel
Usuario
Registrado: Abril 2014
Mensajes: 31
Edad: 35
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Si le quito el "Try" me funciona igual pero cuando voy a guardar los datos nuevos me da un mensaje de error diciendo" Error al introducir los datos"
|
#3 Jueves, 10 Abril 2014, 17:21 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Leonel:
Vale, como tienes el Catch te muestra el mensaje que has puesto...
Comenta estas dos lineas (le pones un ' ), y ya te mostrará el error por pantalla
'Catch
'Message.Error("Imposible introducir los datos solicitados")
También puedes poner entre el Catch y message.error, las siguientes lineas
Y se mostrará en la consola lo que te esta ocurriendo.
|
#4 Jueves, 10 Abril 2014, 17:29 |
|
|
leonel
Usuario
Registrado: Abril 2014
Mensajes: 31
Edad: 35
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Me dice que hay un objeto nulo en la linea 13 del botón aceptar pero en esa linea esta el primer dato que es "Código_Envío" y no entiendo por que me da ese error si todo esta bien escrito y ademas ese error me vuelve a la función "editando = false" y hconn y hresul nulas. de verdad no entiendo el por que..
|
#5 Jueves, 10 Abril 2014, 17:55 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Leonel:
Citar: hay un objeto nulo
Tienes que tener un problema con la conexión que envias desde el formulario principal, revisa el código del boton "nuevo" y el método "runnew()", porque cuando te dice eso es como si intentaras conectar con algo que no esta definido.
Saludos
Julio
|
#6 Jueves, 10 Abril 2014, 18:59 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
No entiendo por qué no usas los objetos de base de datos de gambas para insertar y sí para actualizar. Prueba ésto:
If NOT editando Then 'Si no editando es que estás añadiendo
hresult=miconexion.create("mitabla") 'Creas un registro nuevo
else
hresult=miconexion.edit("mitabla", "Codigo_Envio=&1", txtcodigo_envio.Text) 'o abres el registro adecuado en modo edicion
endif
'y ya está. Colocas los valores ...
hresul["Codigo_Envio"] = txtcodigo_envio.Text
hresul["Nombre_Emisor"] = txtnombre_emisor.Text
hresul["Cedula_Emisor"] = txtcedula_emisor.Text
hresul["Pais_Ciudad_Origen"] = txtpais_cuidad_origen.Text
hresul["Nombre_Receptor"] = txtnombre_receptor.Text
hresul["Cedula_Receptor"] = txtcedula_receptor.Text
hresul["Fecha_Envio"] = txtfecha_envio.Text
hresul["Fecha_Entrega"] = txtfecha_entrega.Text
hresul["Codigo_Despacho"] = txtcodigo_despacho.Text
hresul["Ruta_Cartero"] = txtruta_cartero.Text
hresul["Peso_Paquete"] = txtpeso_paquete.Text
hresul["Costo_Envio"] = txtcosto_envio.Text
'...y lo grabas
hresul.Update
Catch
Message.Error("Se produjo el error " & Error.Text & " En la línea " & Error.where)
End
última edición por shordi el Jueves, 10 Abril 2014, 19:10; editado 1 vez
|
#7 Jueves, 10 Abril 2014, 19:09 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Shordi:
Citar: No entiendo por qué no usas los objetos de baopse de datos de gambas para insertar y sí para actualizar.
Eso no le tiene que dar ningún problema..¿no?
A mi me gusta usar:
Ya que sirve para todo (ejecutar cualquier sentencia SQL)
Saludos
|
#8 Jueves, 10 Abril 2014, 19:47 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
El problema -y de momento puede que no lo sea, pero lo es a la larga- es que te atas a una versión concreta de SQL. Si su programa tiene éxito y luego quiere, por ejemplo, colocar la base de datos en un servidor de internet, las sintaxis pueden no ser válidas y se verá obligado a mantener dos versiones, o a rectificar todo el código, o lo que sea...
Aparte queda el tema de la coherencia y la elegancia, pero eso es algo personal, supongo.
No es ninguna mala idea el adoptar buenos hábitos desde el principio.
Saludos.
|
#9 Jueves, 10 Abril 2014, 20:02 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Problemática Al Insertar Valores En Una Base De Datos Sqilte 3 Mediante Un Formulario
Shordi:
Citar: es que te atas a una versión concreta de SQL.
No pensaba que el SQL cambiara (si sabia que el SQL de SQLite es algo diferente al MySQL)...
|
#10 Jueves, 10 Abril 2014, 21:09 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|