SQL Server a Velneo v7


([N1] Walter Valle) #1

Saludos Amigos,

Les planteo un tema y veamos como paso de SQLServer a Velneo. Por diferente motivos tengo que hacer consultas parecidas a una tabla como la primera en la imagen adjunta, así sucesivamente dependiendo lo que necesito como resultado tengo stored procedures que me devuelven sets de datos sumarizando Q = Cantidades y haciendo simples GROUP BY tengo los resultados como en las siguientes tablas que van en la imagen… la pregunta es: Como resuelvo esto en v7? :slight_smile:



([N1] abel) #2

Hola Walter.

Sinceramente para poder ayudarte creo que tenemos que ir un poco más al origen.

Velneo se define como Base de Datos Real y el tipo de punteros, la forma de funcionar obedece a otros modelos, de forma que no se deforma el análisis del problema por limitaciones de estas relaciones reales y que tengo normalmente que adaptar.

Por tanto no nos sirve hacer paralelismos. Si quieres que te ayudemos, dinos el problema, no la solución , (como haces en Sql).

Es decir planteanos lo que hay en la realidad y la información y necesidad que finalmente deseas el usuario pueda obtener o disponer.

¿De que estamos hablando? De libros, de pruebas de ensayo, de coches

Lo primero que tienes que hacer es dejar de pensar en Sql y de hacer paralelismos, debemos ir al origen

No te ofendas, pero imagina qeu alguien hace 20 años estubiera trabajando con bases de datos Codasyl y tuviera una solucion mediante lecturas secuenciales, ordenamientos y la quisiera trasladar a una relacional, hay que empezar por los indices, las relaciones, etc

Pues aqui lo mismo, las relaciones aquí son permanentes, puedes operar dentro de la bbdd con los datos de cualquier relación los tipos de puntero mucho mas variados (Singulares de plural, hermanos, a si misma) existen las actualizaciones, etc , en definitiva, te gustará mas o menos pero es diferente.

Por tanto necesitamos conocer el problema y te diremos como lo haríamos en Velneo

Es decir algo así como , tengo unos tipos de vehículos que tienen los siguiente atributos G1 qu es la gama y puede ser de X tipos, Q que es la cantidad de Kilómetros… (Lo digo por decir algo)

Lo que el usuario desea es disponer de la siguiente información, desde…


([N4] velavisual) #3

@Walter

Lo que dice @abel es cierto, y creo que más de una vez lo hemos comentado tú y yo vía Skype.

  • Desconocemos si quieres realizar las consultas en SQL y que v7 lea el resultado
  • Tal vez quieras que se ejecute la consulta desde v7 retornando el resultado a v7
    … etc.

Creo que deberías facilitarnos esta información para orientarte el camino más correcto.


([N1] Walter Valle) #4

Saludos y gracias @abel y @velavisual,

La situación la plantee así porque es mas difícil decirles que son test de cultivo para terrenos con un montón de características para la siembra de caña de azúcar.

Cada columna: G1, G2. G3 y G4 son llaves foráneas (FK) a tablas auxiliares con parámetros de zona y calidades de terreno, la combinación de esas 4 generan áreas de cultivo que tienen como medida Q = cantidad de metros cuadrados.

Para determinados procesos requieren consultas como las que trate de exponer en la imagen adjunta. Aclaro que este sistema ya existe y como DB utilizamos SQL Server y queremos migrar a Velneo poco a poco y por ser un sistema algo pequeño, queremos empezar por ahí.

La tabla que agrupa esos FK tiene una estructura como la tabla 1 de la imagen, las siguientes tablas de la imagen son consultas que requieren con totales de la cantidad Q en base a agrupamientos. Ahora, es una sola tabla, ejemplifique cuadro a cuadro para hacerlos mas simple de ver.

No pretendo hacer paralelismos, de echo estamos “cambiando de chip” jejeje

Saludos y gracias!


([N1] abel) #5

Dices “Para determinados procesos requieren consultas como las que trate de exponer en la imagen adjunta”

Yo creo que para determinados procesos y cálculos, sera la base de datos quien te calcule en cada momento y en cada terreno, parametro, etc, diferentes calculos, coeficientes, etc

Por eso te decía que para un buen análisis y una buena solución, hace falta emnpezar desde el principio, desde el problema a solucionar.

Estas persuponiendo que tu programa va a tener una tabla, que después en función de unos parámetros vas a lanzar unas sentencias Sql, para obtener mediante algun calculo algunos resultados, condiciones optimas o lo que sea.

Y esa es la diferencia de Velneo.

Lo normal es que sea la propia solucion de datos quien en todo momento te este dando y resolviendo esos valores.

Por tanto lo primero es establecer las tablas implicadas, los campos (Los que te dan y los que quieres calcular), establecer los punteros y las actualizaciones correspondientes.

Hace falta pro tanto algo as de información acerca de esas tablas auxiliares (Parametros de la zona, calidades de terreno, lso datos que contiene

Y sobre todo la informacion, cualificacion o lo que quieres obtener finalmente.

Probablemente o seguro, no se trate de ninguna sentencia Sql o Busqueda, sino que esas situaciones optimas ya las tendrás resuelats en la base de datos para las diferenets condiciones.

No pienses que un enlace a una tabla foranea = Puntero a Maestro

Por que eso es una simplificacion demasiado grande

Como no me has dado mas datos, es dificil presuponer.

Lo primero que tienes que tener claro es que en Velneo debes distinguir el Qué (la informacion que quieres calcular, mostrar , etc) eso lo haras y calcularas en la base de datos

Del Cómo, formas de agurpar mostrar la informacion, etc, eso lo haras en la parte de ineterface.

El tema de los agurpamientos, dependera del interface, una vez tengas las listas de registros la cual mostraras en un informe, rejilla o rejilla avanzada, dispones de distintas instruciiones para agrupar, etc

Si lo que deseas es buscar informacion, por una parte esta ya te será mostrada desde diferentes formularios, por ejemplo los de Calidades de terreno, Parametros etc

Y por otra parte claro que podrás hacer Selects o similares, eso serán las busquedas

Buscando en Google “Select Velneo”, me aprece esto, pero ya te comento que no es el camino adecuado

http://velneo.es/velneo-sql-query-select-basico/

http://velneo.es/velneo-vs-sql-query-select-varias-tablas/

http://velneo.es/velneo-vs-sql-query-select-varias-tablas/

Te aconsejo que antes de iniciar tu aplicacion tengas claro y sepas que te permite u un puntero a hermano, un singular de plural y sobre todo en tu caso un puntero indirecto.

A eso le sumes lo que unido a lo anterior te posibilitan las actualizaciones, los campos formula y los contenidos iniciales, que con el editor de formulas te posibilita combinar funciones , cálculos y relaciones con todos los campos de todas las tablas relacionadas a uno directa o indirectamente.

O comentanos mas en profundidad Que es lo que tienes y que es lo que quieres conseguir.

Yo por lo poco que veo, me imagino unas tablas con una gran cantidad de test realizados con diferentes condiciones y parametros, y que en funcion de estos al dar de alta un registro o supuesto nuevo, la base de datos de vaya proporcionando resultados ya obtenidos, coeficientes, o historiales parecido.

Ese es el cambio de Chip, la gestion ,los resultados los tienes que tener resueltos previamente, en la base de datos y no tener despues que utilizar una Select para resolver o calcular nada.

Otra cosa es que quieras leer los resultados o test de una forma determinada.

Eso será una Búsqueda, la búsqueda es un elemento bastante complejo y extenso, lo más parecido a una Select, y que su potencia estará en base a los indices montados previamente.

http://velneo.es/info_v7_714_es/velneo_vdevelop_v7/proyectos_objetos_y_editores/proyecto_de_aplicacion/busqueda/

http://velneo.es/busquedas-con-peticion-de-datos/

Quizás esta ultima hubieras sido la respuesta más fácil y complaciente, pero ese no es el camino, estarás programando en Velneo a lo Fox Pro o a lo Visual Basic.

Lo normal es que a esa información accedas desde otros formularios , rejillas, etc pro navegación, y con posibildiades lógicamente de reordenar, etc

Bueno espero te ayude a reflexionar y a terminar tu programa.