sábado, 18 de julio de 2020

Combos anidadas, ListBox de selección y DataGridView

En este ejemplo vamos a ver cómo anidar varias combobox de manera que cargada la combo inicial, se carga una segunda combo tomando el valor elegido en la primera como parámetro de búsqueda para la segunda combo y así sucesivamente hasta la última.

En el caso de la la última combobox en vez de otra combo se cargará un listbox a partir del cual seleccionaremos uno, varios o ningún valor con botones de selección simple o múltiple.

En el ejemplo particular la primera combo cargará una lista de países, la segunda una lista de dominios que dependerá de cada país, por ejemplo, al seleccionar Francia en los dominios puede aparecer Tahití, Guayana, etc. 
A partir de cada Dominio se cargará un combo con los subdominios ( P. ej. provincias de cada dominio). El Ownership será la lista de responsables de cada territorio, Entidad Conceptual. será la lista de entidades a cargo de cada Ownership, (Por ejemplo, Carreteras, Sanidad, Educación) y finalmente Entidad de Explotación. será la lista de entidades derivadas de cada entidad principal. Por ejemplo si elegimos educación podemos tener Escuelas, Universidades, Institutos de investigación, etc.

Para realiza este ejemplo abrimos un proyecto de visual Basic y dibujamos un formulario como este:

formulario con combos y dos listbox

sábado, 11 de julio de 2020

Curso de Keras. Evaluar una red neuronal o modelo

Un modelo o red neuronal en aprendizaje automático es el proceso creado para analizar y extraer datos para obtener información. En las redes neuronales se componen de nodos o neuronas que actúan en capas para procesar datos.

El primer paso para crear una red neuronal es obtener un conjunto de datos. Es decir, una agrupación de datos relevantes para su uso en el modelo. Si se trata de un problema de regresión, generalmente son datos históricos. Si se trata de un problema de clasificación, se trata de colecciones de información similar.

Evaluar una red neuronal o modelo
Más imágenes como esta aquí

sábado, 4 de julio de 2020

Procedimientos almacenados, INSERT SELECT , UPDATE y MERGE con Oracle

Esto es un ejemplo de un procedimiento almacenado de Oracle con operaciones genéricas de creación del procedimiento almacenado, un INSERT SELECT, que consiste en un INSERT que se alimenta de un SELECT de otra tabla o tablas normalmente unidas por INNER JOIN.
A continuación hay un UPDATE normal y corriente con sus actualizaciones de campos y las condiciones de actualización.

También se ha incluido un MERGE que es como un UPDATE pero algo más complejo.

El MERGE utiliza también una SELECT que también puede ser compleja y al final se hace una comparación de la SELECT con la tabla a actualizar campo a campo con un on similar a los de un INNER JOIN con la condición de que estos campos deben ser Primary Key de sus tablas respectivas. Donde se produzca la coincidencia se actualiza el campo indicado de la tabla con el valor tomado de la SELECT interior.

Finalmente las instrucciones de cierre de procedimiento almacenado, también se muestran al comienzo y al final las instrucciones  DBMS_OUTPUT.put_line que muestran por pantalla o en un log el resultado de las acciones por la que va pasando, en este caso muestra la  fecha, hora y un comentario con las actividades que se están realizando.


Este es el Procedimiento almacenado.


--COMIENZO SP

create or replace PROCEDURE                                                                INSERT_NOMBRE AS 
BEGIN

DBMS_OUTPUT.put_line(TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH24:MI:SS'));
DBMS_OUTPUT.put_line('Ejemplos INSERT SELECT y UPDATE-MERGE');


--INSERT SELECT SP_TABLA1

INSERT INTO PROPIETARIO.NOMBRE_TABLA1
  (
    ID_A,
    CAMPO2_B,
    CAMPO3_C,
    CAMPO4_D
  )
SELECT 
TB4.ID1_A, TB3.CAMPO1_B, TB3.CAMPO2_C, TB2.CAMPO1_D from PROPIETARIO.TABLA2 TB2 
INNER JOIN PROPIETARIO.TABLA3 TB3 ON TB2.ID = TB3.ID
INNER JOIN PROPIETARIO.TABLA4 TB4 ON TB4.ID2 = TB3.ID2;


--UPDATE NORMAL 

UPDATE PROPIETARIO.TABLA1 TB1
SET CAMPO1 = expression1,
    CAMPO2 = expression2,
    ...
    CAMPO_N = expression_n
WHERE condiciones;


--MERGE

Los campos del on ( t2.ID = t1.ID) deben ser primary key de la tabla.

merge into PROPIETARIO.TABLA1 t1
using (SELECT A.COD_OBJT , B.DES_VALEXT  
from  PROPIETARIO.TABLA2 A inner join  PROPIETARIO.TABLA3 B ON A.ID = B.ID         
where B.CAMPO3 = 'Valor' ) t2
on ( t2.ID = t1.ID)
when matched then update set t1.CAMPO1 = t2.CAMPO1 ;


--FIN SP

----------------------------------------------------------------
DBMS_OUTPUT.put_line(TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH24:MI:SS'));
DBMS_OUTPUT.put_line('FIN PROCESO');
COMMIT;

--END SP_TABLA1;


Un merge más genérico.

merge into PROPIETARIO.TABLA1 t1
using (Select COD_CAMPO1,DES_CAMPO2 from  PROPIETARIO.TABLA2) t2
on ( t2.COD_CODIGO = t1.COD_CODIGO)

when matched then update set t1.DES_CAMPO_T1 = t2.DES_CAMPO_T2;

Y otro tipo de update.

UPDATE  
        (SELECT A.DES_ORIGEN AS old_value,
                E.DES_DESTINO AS new_value 
        FROM PROPIETARIO.TABLA1 A INNER JOIN PROPIETARIO.TABLA2 E ON A.COD_OBJT = E.COD_OBJT
        where E.CAMPO_X = 'Condición' )

        SET old_value = new_value; 

El procedimiento almacenado se crea en el entorno Oracle SQL developer.

Procedimiento almacenado en Oracle SQL Developer

Exists

SELECT Campo1
  FROM Tabla1 d
  WHERE EXISTS
  (SELECT * FROM Tabla2 e
    WHERE d.Campo1
    = e.Campo1);

Llamada desde Visual Basic

Si queremos llamar a un SP desde VB hacemos lo siguiente:

Const Tabla = "Tabla"

 Sub CargaTabla()

        Dim srSQL As StreamReader
        Dim strConsulta As String

        Try

            strStartupPath = My.Application.Info.DirectoryPath
            srSQL = New System.IO.StreamReader(strStartupPath & "\Ejecuta_SP.sql")
            strConsulta = srSQL.ReadToEnd
            cmdPD = New OleDb.OleDbCommand(strConsulta, cnxPD)
            cmdPD.CommandType = CommandType.StoredProcedure
            cmdPD.ExecuteNonQuery()
            bs.DataSource = ds.Tables(Tabla)

        Catch
            MsgBox("Se ha producido un error insertando los datos en TABLA: " & Err.Description)
        End Try

    End Sub


EN EJECUTA_SP va


NOMBRE_SP

sábado, 27 de junio de 2020

Curso de Keras. Compilando una red neuronal


Keras trabaja con el concepto de modelo (red neuronal). Un modelo es una serie de pasos a  realizar sobre un conjunto de datos para crear una predicción o una clasificación. El modelo está construido de capas, comenzando con la capa de entrada, donde los datos se insertan en el modelo. Continuando en las capas ocultas, donde se procesan los datos. Y finalmente culmina en la capa de salida, donde se encuentra la predicción o clasificación.

Curso de Keras. Compilar una red neuronal
Más fotos de circuitos aquí

viernes, 19 de junio de 2020

Metodologías Agile. El tablero Kanban


Dentro de las metodologías ‘agile’, la gestión de proyectos con herramientas visuales suprime reuniones innecesarias 
y facilita la eliminación de cuellos de botella para agilizar las tareas.

Bajo las premisas de este tipo de modelos de gestión empresarial, los equipos multidisciplinares, con autonomía
para organizarse y capacidad de ejecución, se convierten en la base de las organizaciones. Esta forma de trabajar ayuda a garantizar la entrega constante de resultados y soluciones en tiempos más cortos.


Tablero Canvan


sábado, 13 de junio de 2020

Curso de keras: Conjuntos de datos (datasets) para redes neuronales


Una red neuronal de aprendizaje profundo depende de los datos. La información a la que se hace referencia es tan importante como la forma en que la red neuronal la difunde.
Un conjunto de datos contiene hechos e información recopilados con la intención de usarlo como referencia o análisis. Las redes neuronales pueden utilizar imágenes, texto o números como entrada. Y esta entrada es lo que la red neuronal utiliza para aprender y hacer predicciones.

Los conjuntos de datos provienen de muchas fuentes. Las empresas a menudo generan datos internamente a través de aplicaciones o ingreso manual de datos para su uso en redes neuronales para realizar predicciones o análisis. Algunos gobiernos e instituciones de investigación publican conjuntos de datos para el consumo público.
Keras tiene numerosos conjuntos de datos disponibles en Internet creados por los desarrolladores o entidades externas y estructurado para ser compatible. Están disponibles gratuitamente para pruebas y planificación.

Más fotos como esta.