Comunidad Gambas-es
Mecanizar, unificar las sentencias SQL - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: Mecanizar, unificar las sentencias SQL (/thread-583.html)



Mecanizar, unificar las sentencias SQL - gambafeliz - 08-09-2021

Hola

De verdad que esto me da apuro. Pero yo nunca me encargue de hacer un mecanizado de las consultas SQL (SELECT, INSERT, UPDATE) yo simplemente lo pasaba a una función y listo, hoy en día tengo SQLs por todo el código y me pregunto, ¿Alguien me enseñaría, sí, enseñaría como hacer esto?

Hasta rojo me pongo por pedir esto, pero ni llego a hacerlo bien, ya que no abarco todos los casos, y estoy harto de ocultar esta falta.

¿Como lo hacen ustedes para globalizar y encaminar las consultas por ejemplo a un módulo o a una clase?

Gracias.

Nota: En esta pregunta admito que me tiren tomates Smile


RE: Mecanizar, unificar las sentencias SQL - Shordi - 08-09-2021

Yo no "mecanizo", que no sé lo que es, las consultas SQL, ni las "globalizo", que tampoco. Lo que sí he hecho en alguna ocasión es una base de datos de consultas creadas por los propios usuarios para su uso personal, etc. etc... pero eso no es lo que buscas, creo, y no te puedo responder más.

Saludos


RE: Mecanizar, unificar las sentencias SQL - Grandamakulo - 08-09-2021

No sé si te refieres a automatizar búsquedas a partir de datos de controles. En una aplicación concreta voy enlazando las partes de la consulta en una sola cadena que luego paso a dicha consulta. Por ejemplo, para LIKE BCHM <> "" AND Tipo = GALXY AND DE > -30 AND DE < 30, la selección del usuario sería:
[Imagen: 2021-09-08-11-53.png]
La cadena que genera el programa es: (BCHM <> "") AND (TIPO ="GALXY") AND (DE>-30 AND DE<30)
No sé si es esto lo que buscas. Si es así, cuelgo el código, que es largo.


RE: Mecanizar, unificar las sentencias SQL - calcena - 08-09-2021

Buenas, no se si te referirás a tener un modulo Helper, para tener todas las consultas englobadas dentro de ese módulo.
Si es esto lo que preguntas, ahora por ejemplo el tema helpers está mal visto en arquitecturas como DDD BDD o TDD, aunque acaban hacienod lo mismo pero implementando un patrón repositorio, que es una abstracción de la clase para inyectarlo a tu ćodigo.
Pero sin entrar en esas arquitecturas, en mi opinión puedes crear una clase abstracta a la que le pases un componente(p.e) datatable y que mediante funciones te devuelva ya el mismo elemento pero construido para plasmar en tu formulario.
de esta forma en esa clase tienes la abstracción y cuando la llamas le pasas la SQL del Helper y el control que quieres rellenar, si no es un control pues devuelves el recordset ...o lo que corresponda.
Si no es esto lo que querías indicar, no se a qué te refieres entonces.
Saludos


RE: Mecanizar, unificar las sentencias SQL - Shordi - 08-09-2021

Variopintas respuestas a una pregunta ambigua... es lo que tiene, si no se es claro, todo es confusión.

Sin acritud, sólo por lo que hemos hablado otras veces.

Saludos.


RE: Mecanizar, unificar las sentencias SQL - gambafeliz - 08-09-2021

Perdón a todos de corazón y especialmente a ese Shordi Tongue Big Grin que siempre me regaña y con razón. Creo que la respuesta mas cercana a mi consulta con perdón a todos, es la que apunta Calcenas, pero siendo esta me va a tener que explicar mucho mas ya que ando mas perdido que el barco del arroz.

Miradlo como que quiero hacer una maquina donde le paso:
1. Que quiero hacer, Consulta, escribir, actualizar, borrar la base de datos.
2. La parte dinámica que solo sabe el programador de la consulta, nombre tabla, campos, etc
3. Y obtener un result por ejemplo.

Casi na...., esto cuando trabajaba lo hacia otros compañeros y yo simplemente usaba esta maquina y etc....