https://foro.gambas-es.org/viewtopic.php?f=3&t=5734
-----------------------------------
v3ctor
Lunes, 29 Agosto 2016, 01:09

Guardar última Acción Ejecutada (sql)
-----------------------------------
buenas
[code linenumbers=false syntax=gambas]
' Gambas module file


Public Const LISTAR_COSAS As Integer = 0
Public Const LISTAR_MAS As Integer = 1
Public Const LISTAR_VACIO_MENOS As Integer = 2
Public Const LISTAR_FILTRO_EN_COSAS As Integer = 3

modulo ac

Public Sub GuardarUltimaAccion(accion As Integer, Optional sql As String, Optional filtro As String, Optional datos As Variant[])
  
  Settings["UltimaAccion/EstaAccion"] = Accion
  Settings["UltimaAccion/sql"] = sql
  Settings["UltimaAccion/filtro"] = filtro
  Settings["UltimaAccion/datos"] = datos
  
  Settings.Save()
  
End


Public Sub EjecutarUltimaAccion()
  
  Select Case Settings["UltimaAccion/EstaAccion", 0]
    Case 0 'Public Const LISTAR_COSAS As Integer = 0
      Almacen.ListarTodo()
    Case 1 'Public Const LISTAR_MAS As Integer = 1
      Almacen.cbxEstado.Index = 4
    Case 2 'Public Const LISTAR_VACIO_MENOS As Integer = 2
      Almacen.cbxEstado.Index = 5
    Case 3 'Public Const LISTAR_FILTRO_EN_COSAS As Integer = 3
      Almacen.ListarEsto(Consultas.ListarFiltroEnCosas(Settings["UltimaAccion/filtro", ""]))
    Case 4
      
    Case 5
      
    
  End Select
  
End[/code]


guardar última acción

[code linenumbers=false syntax=gambas]Public Sub ListarMas() As Result
  Dim r As Result
  
  r = Almacen.CX_Inventario.Exec("select * from productos where estado='MAS'")
  
  AC.GuardarUltimaAccion(AC.LISTAR_MAS)
  
  Return r
    
End[/code]



ejecutar ultima accion ahora...


[code linenumbers=false syntax=gambas]Public Sub btnGuardar_Click()
  Dim Campos, Valores As String
 
  If AccionModificar Then 'Modificacion de proveedor
  
  Campos = "nombre=&1, datos=&2,correo=&3,web=&4"
     
     Try Almacen.CX_Inventario.Exec("Update proveedores set " & Campos & " where idproveedor = &5", UCase$(txtNomProv.Text), 
       txtaDetallesProv.Text, txtCorreo.Text, txtWeb.Text, CInteger(LabIdNuevoProv.Text))  
       
      If Error Then 
        MsgvProv.Open(Error.Text & " (" & Error.Where & " : " & Error.Code)
        Return
      Else
        ListarProveedores()
        ActivarBotones(False)
        btnGuardar.Enabled = False
        Balloon.Info("Cambios guardados correctamente", btnGuardar)
        
      Endif   
    
  Else
    'Ingreso de nuevo proveedor
    Campos = "idproveedor,ingreso,nombre,datos,correo,web"
    Valores = "&1,&2,&3,&4,&5,&6"
  
    Try Almacen.CX_Inventario.Exec("insert into proveedores (" & Campos & ") values (" & Valores & ")", 
    CInteger(LabIdNuevoProv.Text), Now, UCase$(txtNomProv.Text), txtaDetallesProv.Text, txtCorreo.Text, txtWeb.Text)
    
    If Error Then 
      MsgvProv.Open(Error.Text & " (" & Error.Where & " : " & Error.Code)
      txtNomProv.Clear()
      ' txtNomProv.SetFocus()
      Return
    Else
      ListarProveedores()
      Limpiar(True)

    Endif
  Endif
  
  ac.EjecutarUltimaAccion()

End[/code]


que opinan de este código...


-----------------------------------
shordi
Lunes, 29 Agosto 2016, 08:08

Re: Guardar última Acción Ejecutada (sql)
-----------------------------------
Manejo elemental de la clase settings.  :mryellow:  :mryellow: 

Pero una cosa: si tu programa es para tí y el ordenador sólo lo usas tú, perfecto. Pero si estás en un  entorno no controlado, por ejemplo en una oficina donde mucha gente tiene acceso a la máquina, guardar consultas dejando información de tablas, campos, etc. en ficheros de texto plano... es un hueco en la seguridad muy grande. Estás dando muchas pistas que "una persona malintencionada" puede usar en tu contra.

Saludos


-----------------------------------
v3ctor
Lunes, 29 Agosto 2016, 16:00

Re: Guardar última Acción Ejecutada (sql)
-----------------------------------
[quote user="shordi" post="34033"]Manejo elemental de la clase settings.  :mryellow:  :mryellow: 

Pero una cosa: si tu programa es para tí y el ordenador sólo lo usas tú, perfecto. Pero si estás en un  entorno no controlado, por ejemplo en una oficina donde mucha gente tiene acceso a la máquina, guardar consultas dejando información de tablas, campos, etc. en ficheros de texto plano... es un hueco en la seguridad muy grande. Estás dando muchas pistas que "una persona malintencionada" puede usar en tu contra.

Saludos[/quote]

bueno el loco (el programa) a duras penas cumple con los requisitos del cliente (yo) y vos me hablas de seguridad?

primero tengo que aprender a programar básicamente, ya llegara la programación de seguridad, guardando datos en md5 mínimo, encriptando información que se guarda en archivos de texto, clave de usuario de ingreso al programa  y demás.

este programa esta orientado a el uso personal, donde la "seguridad" radica en el acceso a la pc protegida por la sesión de usuario.


-----------------------------------
shordi
Lunes, 29 Agosto 2016, 17:02

Re: Guardar última Acción Ejecutada (sql)
-----------------------------------
Como te dije: Si es para tí y lo usas tú entonces perfecto

 :mryellow:  :mryellow:  :mryellow:


