Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Base De Datos Sqlite
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Base De Datos Sqlite 
 
Hola amigos estaba haciendo un programa con el gestor Slite y cuando lo termine lo quiero compilar me va muy bien hasta el momento pero en estos dias se me cruzo por la cabeza que en una parte yo tengo que especificar el lugar y la direccion de la base y que no siempre va a ser el nombre de usuario "gubuntu" como el ejemplo de abajo;
Conexion = NEW Connection
Conexion.Type = "sqlite3"
Conexion.host = "/home/gubuntu/Documentos/altgr/base1/database"
Conexion.Name = "usuario"
TRY Conexion.Open()
Y mi pregunta es como o si existe algun codigo para crear la base desde un boton y dejar a un lado el tema de especificar la direccion, les agradeceria mucho su ayuda
 



 
gustavo_fleitas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Pues yo lo hago así, en el módulo de conexión:
Private hconn As Connection

Public Sub ConectarBase() As Connection
  
  hconn = New Connection
  hconn.Host = User.Home &/ ".visor"
  hconn.name = "mibase1"
  hconn.type = "sqlite3"
    Try hconn.Open()
    Return hconn
  If Error Then
     hconn = Null
     Message.Error("error al conectar con la base")
    
  Endif
      
End

Y en el evento Open de fmain:
  
   If Not Exist(User.Home &/ ".visor/mibase1")
      Try Mkdir User.Home &/ ".visor"
      Copy "mibase1" To User.Home &/ ".visor/mibase1"
   Endif

        La base de datos la guardo en la carpeta "Datos" del proyecto, en la primera ejecución crea la carpeta oculta y se copia allí. Incluso si creas un .deb o .rpm , por ejemplo, para instalarlo en otra máquina, lo hace sin problemas.
Espero te sirva. Te comento que esto me lo pasó un compañero del foro cuando recién estaba empezando.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Hola amigo, estaba pobando de la forma que dijiste y lo que quiero hacer es que al hacer click en un boton me guarde los siguientes registro "nombre, apellido, edad, id" pero no me funciona con los codigo que me pasaste  solo a si me funciona te dejo mi programacion y agradeceria mucho tu ayuda si pudieras corregir mi codigo

PUBLIC Conexion AS Connection
PUBLIC Registro AS Result

PUBLIC SUB Form_Open()
ME.Center
Conexion = NEW Connection
Conexion.Type = "sqlite3"
Conexion.host = "/home/gubuntu/Documentos/altgr/base1/database"
Conexion.Name = "usuario"
TRY Conexion.Open()



END
PUBLIC SUB Button1_Click()
DIM a AS Variant

a = TextBox1.Text
  Registro = Conexion.Create("user")
  Registro["id"] = a
  Registro["nombre"] = TextBox2.Text
  Registro["apellido"] = TextBox3.Text
  Registro["edad"] = TextBox4.Text
  Registro.Update
  Registro = Conexion.Exec("select * from user")
  Message.Info("Guardado:)", "aceptar")
  TextBox1.Clear
  TextBox3.Clear                                  
  TextBox2.Clear
  TextBox4.Clear

END
 

 



 
gustavo_fleitas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Hola

Gustavo, evidentemente un código de otro compañero puede no funcionar en tu caso. No podemos pensar que un corta-pega va a ser la solución a todo, también debemos leer y pensar por nosotros mismos.

De hecho, en el código que te pasó el amigo Dani26 está la solución que buscas, aunque no la hayas visto. Si te fijas en el valor de la propiedad .Host de la clase Connection (eso sí, vamos a llamar a cada cosa por su nombre) verás que Dani ha usado la clase User y su propiedad Home, que devuelve la ruta al directorio de usuario en cualquier PC y para el usuario actual (es decir, con la sesión iniciada). Sólo has de concatenar el nombre del fichero de la base de datos sqlite. Lo vemos mejor con un ejemplo:

' Esta es la linea que pusiste en tu código, pero la ruta es estática, no cambia nunca
' y no funcionaría en un ordenador diferente al tuyo.
Conexion.host = "/home/gubuntu/Documentos/altgr/base1/database"


' Si sustituimos "/home/gubuntu  por la clase User.Home ésta devolverá siempre
' la ruta de la carperta de usuario en cualquier ordenador

Conexion.host = User.Home &/ "Documentos/altgr/base1/database"
 


Como ves, User.Home en tu pc devolvería la ruta /home/gubuntu pero en mi pc devolvería /home/miusuario. Después, mediante el operador de concatenación &/ añadimos el resto de la ruta que será fija para cualquier pc.

Hay que tener en cuenta que si los subdirectorios no existen se producirá un error. Es del todo probable que lo que está debajo de Documentos, en el caso que muestras "/altgr/base1/" no exista en otras máquinas, así que deberías chequear si existen y en caso contrario, crearlas. Si no lo haces, de nuevo obtendrás errores.

Espero haberte ayudado, pero por favor, tratar de entender el código antes de decir que no funciona.

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Claro tampoco hice copiar y pegar directo, intente de adaptarlo a mi código e incluso probé que al dar click en un botón me copie la base pero aun así no me funciono   y lo de Conexion.host = User.Home &/ ya me funciona, poco despues que volví preguntar pude corregir el error ya va de maravilla pero al final me quede con la curiosidad de como funciona el siguiente codigo

[code linenumbers=false syntax=gambas]
 If Not Exist(User.Home &/ ".visor/mibase1")
      Try Mkdir User.Home &/ ".visor"
      Copy "mibase1" To User.Home &/ ".visor/mibase1"
   Endif

Muchas gracias por toda la ayuda ya aprendi bastante  en gambas-es.org
 



 
gustavo_fleitas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
If Not Exist(User.Home &/ ".visor/mibase1") 'comprueba que la base exista o no, si no existe
Try Mkdir User.Home &/ ".visor"                  'crea el directorio oculto .visor
Copy "mibase1" To User.Home &/ ".visor/mibase1"   'y esta línea copia la base al directorio recién creado
Endif
 

Si la base ya existe, bien por una ejecución previa o por que ya la creaste o copiaste manualmente, no hace nada y se sale del procedimiento. En el código te puse los comentarios al lado de cada línea para que veas lo que hace.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Esa es una de las formas de crear bases de datos sqlite en el pc de la persona que instala el programa, que consiste en copiar el fichero sqlite desde dentro del programa al disco duro de destino.

Pero lo ideal es crear la base de datos por código y evitar meter ficheros binarios dentro del ejecutable. Creo que el gestor de base de datos o cualquier aplicación que las maneje, es capaz de hacer un "dump" de la estructura en código sql que luego podemos ejecutar desde gambas. gambas también dispone de las órdenes precisas para hacerlo en código gambas puro.

Busca por los foros, seguro que encontrarás algún ejemplo que te sirva.

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
jguardon:

Citar:
evitar meter ficheros binarios dentro del ejecutable

¿Por que evitarlo? Yo lo suelo usar mucho, y nunca he tenido problemas...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
Porque es evidente que crece desmesuradamente el tamaño del ejecutable y puede ser que el intérprete se vea afectado en alguna medida, en velocidad por ejemplo. Aunque nunca he hecho esas pruebas, no puedo confirmarlo.
 




===================
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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Base De Datos Sqlite 
 
jguardon:
Citar:
Porque es evidente que crece desmesuradamente el tamaño del ejecutable y puede ser que el intérprete se vea afectado en alguna medida, en velocidad por ejemplo. Aunque nunca he hecho esas pruebas, no puedo confirmarlo.

Te cuento mi experiencia, en el programa de las orlas ( Enlace ), el archivo .deb pesa unos 30 mb, (el tag.gz sobre 60 mb). Aproximadamente 90% del peso se debe a un archivo a vez comprimido con muchas plantillas de orlas, el resto 10 % el programa (codigo fuente + iconos). Y no he tenido ningún  problema, ni de rendimiento ni de uso.... o por lo menos nadie me lo ha comentado...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Accesar A Una Base De Datos Sqlite Desde U... abarzuaf Bases de Datos 2 Miercoles, 02 Diciembre 2009, 23:28 Ver último mensaje
abarzuaf
No hay nuevos mensajes Rellenar Combo Con Las Tablas De Una Base ... pittusa Bases de Datos 3 Sabado, 27 Noviembre 2010, 12:58 Ver último mensaje
shordi
No hay nuevos mensajes Base De Datos Sqlite Basica Andando v3ctor Bases de Datos 1 Martes, 26 Noviembre 2013, 00:00 Ver último mensaje
shordi
No hay nuevos mensajes No Me Guarda El Usuario En La Base De Dato... miguel perez Bases de Datos 10 Lunes, 02 Diciembre 2013, 18:01 Ver último mensaje
miguel perez
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron