Alberto59   30-11-2023, 14:15
#1
Buenas,os mando programilla de un diario de caja,udando GRIDVIEW Y COLUMNVIEW.

Con ello,quiero que veas como funciona ambos.

Os adjunto el codigo fuente.

Saludos.
Archivos adjuntos
.gz
CAJA.tar.gz (Tamaño: 1.33 KB Descargas: 1)
.gz
Diariodecaja-0.0.1.tar.gz (Tamaño: 39.09 KB Descargas: 1)
Shell   30-11-2023, 23:40
#2
Alberto actualmente este código te funcionará a ti, pero no al resto cuando quieran guardar la copia de la base de datos.

Es mejor usar la clase User.

Prueba a escribirla en el editor, después de escribir el punto, verás distintas propiedades.

La imagen de caja, sería mejor cambiarla por caja.jpg.
Ademas de cambiarla tienes que asegurarte de buscar jpg (su nombre actual) en el código mediante "Reemplazar" en el menú "Herramientas".
Ojo, cuando remplaces los nombres, CAJA y caja.jpg son muy similares, sobre todo si usas para CAJA, caja.

Y en cuanto al nombre de la base de datos, con más tranquilidad, añádele una extensión, .db, lo que te guste más.
Para cambiar el nombre en el código puedes usar esto:

[Imagen: ljXMrAz.png]

En Reemplazar añades por ejemplo CAJA.DB

Saludos
Última modificación: 01-12-2023, 00:16 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   01-12-2023, 12:17
#3
He modificado el modulo ModSQL.
El nombre de la base la cambié a caja.db en el directorio de la aplicación

Código:
Public Sub ConectarBase() As Boolean
  If ConnX.Opened Then Return True
  '
  With ConnX
    .Type = "sqlite3"
    '.host = Application.Path '<--- Ruta a la base de datos Sqlite
    .Host = User.Home &/ "." & Application.Name '<--- Ruta a la base de datos Sqlite
    .name = "caja.db"
    .Open()
    '
    .Exec("PRAGMA foreign_keys = 1;")
    '
  End With
  '
  Return True
  '
  Catch
   
    Return False
End

Y en el FMain:

Tal como la aplicación se abre ahora comprueba si existe el directorio de la base de datos, que no existe, se crea y se copia a este la base que se encuentra en el directorio de la aplicación.

Código:
......
Dim linea As Integer 'Contador de filas

  'Comprobar existencia de la base de datos
  'Directorio
  'Copiado de la base a este
  If Not Exist(User.Home &/ "." & Application.Name) Then
    'Directorio oculto en la home del usuario
    Mkdir User.Home &/ "." & Application.Name
    Copy Application.Path &/ "caja.db" To User.Home &/ "." & Application.Name &/ "caja.db"
  Endif
........

En el botón de copia de seguridad de la base de datos se puede hacer:

Código:
'NOTE: Comentar a Alberto

Public Sub BTopciones_Click()

  'Comprobar primero si existe el directorio donde se va a copiar la base
  If Exist(User.Home &/ "BDCAJAseguridad") Then
    Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
  Else
    Message.Info("NO EXISTE DIRECTORIO,SE CREA DIRECTORIO Y SE COPIA BASE....")
    Mkdir User.Home &/ "BDCAJAseguridad"    
    Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
  Endif

End

La base de dato ahora no es necesaria la que tiene el directorio de la aplicación.

Se crea en un directorio oculto con el nombre de la aplicación
y ademas tiene su directorio de copia de seguridad visible en el directorio
padre del usuario.

Ya me comentas que te parece.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   01-12-2023, 14:26
#4
Curioso que el comando Copy de Gambas de problemas si el archivo ya existe.
Si el archivo caja.db existe en el directorio de copia de seguridad da error y no deja crear una nueva copia.

Por ahora no veo más remedio que usar la orden shell y el comando cp de bash.

Preguntaré en otro post.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.