|
Página 1 de 13
|
Comencé Nueva Aplicación ( Taller 2015 )
Autor |
Mensaje |
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Comencé Nueva Aplicación ( Taller 2015 )
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#1 Lunes, 29 Diciembre 2014, 17:27 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
V3ctor:
He intentado ejecutar la aplicación, y me pone el error de que no existe la base de datos:
En la función de AbrirConexion, tienes definido la siguiente ruta:
Public Function AbrirConexion() As Boolean
......
Conectar1.Host = "/home/postapase/Proyectos Taller2015/Taller_2015"
Conectar1.Name = "basetaller"
Conectar1.Type = "sqlite3"
...
Debes de preveer que esa ruta, no esta en todos los ordenadores, y por lo tanto, no la va ha encontar el programa y le fallará al que pruebe el programa.
Una posible solución puede ser esta:
0) Si no existe, crear una carpeta en el ordenador para que guarde la base de datos (por ejemplo en la ruta user.home & "/ProgramaTaller/" )
1) Tener dentro de la carpeta "Datos" de tu programa, una base de datos "limpia de registros" , de tu base de datos "Taller_2015"
2) Copiar la base de datos a un directorio del disco duro del usuario (a la carpeta user.home & "/ProgramaTaller/" )
3) Luego lo que haces es abrir la base de datos que esta en esa ruta: user.home & "/ProgramaTaller/Taller_2015", y es ella la que añadies los registros, editas, borras ,etc...
Y ya cualquier usuario puede usar entonces el programa.
Puedes ver lo que te explico, en el programa Cortes:
Otra cosilla: es bueno hacerte un esquema de como esta organizada la base de datos (nombres de tablas, vistas ,campos, tipos, etc), y poner notas o comentarios de lo que estas haciendo. Eso te facilitará ampliar la base de datos en un futuro y tenerla para documentar el programa. Te lo digo por experiencia, ya que al principio es muy poco lo que hay que escribir, pero a medida que aumentes el programa, te facilitará mucho tenerlo hecho y actualizado tu esquema.
Yo para eso uso una hoja de calculo, aqui tienes un ejemplo de como lo hago:
https://drive.google.com/folderview...SEE&usp=sharing
Saludos
|
#2 Lunes, 29 Diciembre 2014, 18:25 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
gracias julio voy a arreglar eso jajaj, veo que tendré que usar varias tablas mas adelante ahora no me animo pero si mas adelante.
sino mal recuerdo creo que vi un video tuyo sobre enlace de tablas pero no se donde lo vi.
en mi caso particular seria enlazar el id o nombre de la tabla principal con una tabla secundaria donde se guardan los datos del equipo a reparar, en cuatro campos.
la verdad que es muy interesante lo de base de datos pero es algo difícil jaja
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#3 Lunes, 29 Diciembre 2014, 21:47 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
V3ctor:
Citar: en mi caso particular seria enlazar el id o nombre de la tabla principal con una tabla secundaria donde se guardan los datos del equipo a reparar, en cuatro campos.
Todo eso se hace con sentencias SQL o usando Vistas.
Aqui tienes un pequeño resumen de SQL:
http://cursogambas.blogspot.com.es/...eleccionar.html
Saludos
|
#4 Martes, 30 Diciembre 2014, 14:50 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
estoy teniendo problemas permanente con esta linea que al parecer es bastante delicada
hconn.EXEC("insert into tablataller values (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10,&11)", txtid.Text, DBoxfecha.Value, txtNombre.Text, txtCelular.Text, vboxCosto.Value, txtaDomicilio.Text, txtaDatos.Text, cbxTipo.Text, cbxMarca.Text, cbxModelo.Text, txtSerial.Text)
estaba andando bien pero cambio varios textbox a combobox y dejo de funcionar dando error.
estoy sospechando que el gran problema esta en el formato de la fecha DBoxfecha.value
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Martes, 30 Diciembre 2014, 16:55; editado 2 veces
|
#5 Martes, 30 Diciembre 2014, 15:40 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
esto me funciona en el sql de pruebas de gambas
insert into tablataller (id,nombre) values (12,"marcos")
pero pongo el similar de programación y no inserta los datos
hconn.EXEC("insert into tablataller values (id,nombre)", txtid.Text, txtNombre.Text)
o asi
hconn.EXEC("insert into tablataller values (id,nombre)", Val(txtid.Text), txtNombre.Text)
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#6 Martes, 30 Diciembre 2014, 17:13 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
esto funciono:
' insert into tablataller (id,nombre) values (14,'asdfasdf') esto funciona en sql de gambas de testeo y logre hacer un string que iguale a esto y lo puse en exex y funciona
esta dificil dificil la sintaxis de sql lo he logrado a base de prueba y error voy a intentar poner todo el string completo a ver que pasa.
SentenciaSQL = "insert into tablataller (id,nombre) values (" & txtid.Text & ",'" & txtNombre.Text & "')"
Print SentenciaSQL
hconn.EXEC(SentenciaSQL)
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#7 Martes, 30 Diciembre 2014, 17:45 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
V3ctor:
hconn.EXEC("insert into tablataller values (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10,&11)", txtid.Text, DBoxfecha.Value, txtNombre.Text, txtCelular.Text, vboxCosto.Value, txtaDomicilio.Text, txtaDatos.Text, cbxTipo.Text, cbxMarca.Text, cbxModelo.Text, txtSerial.Text)
Un error que veo esta linea, es que pones &10,&11, a partir del 9 tienes que usar llaves "{" y "}":
&{10}
Osea deberias escribirlo asi:
hconn.EXEC("insert into tablataller values (&1,&2,&3,&4,&5,&6,&7,&8,&9,&{10},&{11})", txtid.Text, DBoxfecha.Value, txtNombre.Text, txtCelular.Text, vboxCosto.Value, txtaDomicilio.Text, txtaDatos.Text, cbxTipo.Text, cbxMarca.Text, cbxModelo.Text, txtSerial.Text)
Esto esta comentado en el foro (en algun post, no recualdo cual) y en la ayuda de gambaswiki (en ingles):
http://gambaswiki.org/wiki/lang/subst
Saludos
|
#8 Martes, 30 Diciembre 2014, 18:21 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
pero pongo el similar de programación y no inserta los datos
hconn.EXEC("insert into tablataller values (id,nombre)", txtid.Text, txtNombre.Text)
El método Exec acepta varios parámetros. el primero es obligatorio y es la sentencia sql, ya sea directamente o contenida en una variable. El segundo parámetro y siguientes, son los valores que corresponden a los "comodines", o wildcard o como quieras llamarlos, que se expresan mediante el símbolo ampersand & y un número correlativo: &1, &2, etc. (como explica jsbsan, si el número tiene dos cifras hay que meterlo entre llaves).
Bien, entonces, para que lo comprendas, cada parámetro adicional de Exec, corresponde a ese comodín por el orden de su número. Es decir, &1 se va a sustituir por el segundo parámetro, &2 por el tercero y así sucesivamente. Recuerda que el primer parámetro es siempre la propia sentencia SQL.
También hay que tener en cuenta cómo usar la sintaxis sql. El insert que propones no puede funcionar de esa manera y es una mala práctica no especificar primero los campos que queremos insertar. De manera que el ejemplo de arriba quedaría así:
hconn.EXEC("insert into tablataller (id, nombre) values(&1, &2)", txtid.Text, txtNombre.Text)
Repasa la sintaxis del INSERT aquí.
La ventaja de usar la sustitución de parámetros es que no tienes que preocuparte de formatear los datos que quieres insertar, por ejemplo en el siempre lioso caso de las fechas. Pero veo que todavía eres novato con las bases de datos, por lo que ya te irás dando cuenta de que no son tan fáciles como dicen ni tampoco tan difíciles como te pueda parecer.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#9 Martes, 30 Diciembre 2014, 20:18 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Comencé Nueva Aplicación ( Taller 2015 )
gracias a los dos, julio sin querer llegue a aplicar tu método de sentencias sql de tu programa cortes (lo estoy analizando para sacar soluciones) , también hice algo bien de novato pero es que necesito el programa lo antes posible , pase todas las variables de la base de datos a cadena así me resultara mas fácil, pues por ejemplo entre la fecha que te da el datebox de gambas y la base de datos sql hay diferencias de formato y eso me estaba enloqueciendo, pues se sumaban errores de sintaxis de la propia sentencia sql y todavía problemas de formato de fecha.
les cuento algo antes de mi ultimo intento de hacer una base de datos, lo intente como 7 veces con varios manuales el que uso julio lo intente como 4 veces y adivinen cual fue la linea del fracaso jajaja
esta que les comento. que bueno estaría que alguien revisara ese manual y corrigiera esos errores así cada novato que lee el manual termina haciendo la base de datos y no sufriendo un fracaso rotundo ya que el leer el manual y escribir todo el código ya es difícil imaginen sen si este manual tiene error en esta linea que el novato no tiene como detectar que esta mal.
y después de pasar horas o días armando el código llega a un callejón sin salida.
SentenciaSQL = "insert into tablataller (id,fecha,nombre,celular,costo) values (" & txtid.Text & ",'" & txtFecha.Text & "'" & ",'" & txtNombre.Text & "'"
SentenciaSQL &= ",'" & txtCelular.Text & "','" & txtCosto.Text
SentenciaSQL &= "')"
Print SentenciaSQL
hconn.EXEC(SentenciaSQL)
asi es como lo vengo resolviendo....
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Martes, 30 Diciembre 2014, 20:37; editado 1 vez
|
#10 Martes, 30 Diciembre 2014, 20:36 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 13
|
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
|
|
|
|
|