Diferencia entre revisiones de «Categoría:DEV CONSULTAS»
(→Tablas) |
|||
Línea 15: | Línea 15: | ||
=Tablas= | =Tablas= | ||
*[[DEV CONSULTAS|Consultas (prxconsultas)]]. | *La tabla [[DEV CONSULTAS|Consultas (prxconsultas)]] define la cabecera de la consulta. | ||
*[[DEV CONSULTAS/ARGUMENTOS|Consultas, argumentos (prxconsultasA)]]. | *La tabla [[DEV CONSULTAS/ARGUMENTOS|Consultas, argumentos (prxconsultasA)]] define los argumentos de la consulta. | ||
*[[DEV CONSULTAS/DETALLE|Consultas, detalle (prxconsultasD)]]. | *La tabla [[DEV CONSULTAS/DETALLE|Consultas, detalle (prxconsultasD)]] define el comando SQL que retorna el resultado de la consulta. | ||
*[[DEV CONSULTAS/RESULTADO|Consultas, campos del resultado (para documentar) (prxconsultasR)]]. | *La tabla [[DEV CONSULTAS/RESULTADO|Consultas, campos del resultado (para documentar) (prxconsultasR)]] permite agregar comentarios sobre las columnas del resultado, se usa solo para esta documentación. | ||
=Acceso a los argumentos desde el SQL de la consulta= | =Acceso a los argumentos desde el SQL de la consulta= |
Revisión actual - 17:47 28 mar 2025
Introducción

Las consultas permiten acceder a los datos almacenados en las tablas, muchas veces haciendo uniones entre diferentes tablas hasta llegar al resultado esperado.
Normalmente tienen criterios que definen parámetros, tales como rango de fecha.
Por ejemplo, si quisiéramos consultar los movimientos de un artículo dentro de un periodo determinado, definiríamos:
- Un criterio para indicar el código del artículo que queremos consultar.
- Un criterio para indicar desde qué fecha queremos considerar los movimientos.
- Un criterio para indicar hasta qué fecha queremos considerar los movimientos.
Al ejecutar la consulta el resultado se filtrará según los criterios definidos.
Las consultas no permiten la edición de datos por lo que podemos asignarlas a usuarios que solo pueden consultar datos sin editarlos.
Tablas
- La tabla Consultas (prxconsultas) define la cabecera de la consulta.
- La tabla Consultas, argumentos (prxconsultasA) define los argumentos de la consulta.
- La tabla Consultas, detalle (prxconsultasD) define el comando SQL que retorna el resultado de la consulta.
- La tabla Consultas, campos del resultado (para documentar) (prxconsultasR) permite agregar comentarios sobre las columnas del resultado, se usa solo para esta documentación.
Acceso a los argumentos desde el SQL de la consulta
Los argumentos de la consulta se definen en DEV CONSULTAS/ARGUMENTOS y el SQL que genera el resultado se define en DEV CONSULTAS/DETALLE.
Para que el SQL acceda a los valores ingresados en los argumentos tenemos que hacer lo descripto en este título.
Asumiendo que tenemos un argumento llamado Fecha de tipo datetime el SQL (definido en DEV CONSULTAS/DETALLE) accede a su valor intercalando un código como FBN(Fecha).
- FBN significa FieldByName y retorna el valor de un argumento con ese nombre.
Por ejemplo:
SELECT listademovimientos.* FROM listademovimientos WHERE listademovimientos.Fecha <= FBN(Fecha) ORDER BY listademovimientos.Fecha
Estructura de la tabla asociada a la consulta
Cuando registramos una consulta ésta va a crear una tabla en el servidor, con el mismo nombre de la consulta y con las siguientes características:
- Siempre se va a crear un campo denominado IdUsuarioDeLaConsulta de tipo VARCHAR(128), y se va a ubicar como primer campo de la tabla.
- A continuación se agregan los campos definidos en DEV CONSULTAS/ARGUMENTOS, si no se definiron argumentos la tabla se creará con el campo anterior.
Por ejemplo, para una consulta denominada ACCAB_PENDIENTES_APLICACION_Consulta que define dos argumentos, FechaDesde y FechaHasta, de tipo datetime ambos, el CREATE de la tabla sería algo así:
CREATE TABLE ACCAB_PENDIENTES_APLICACION_Consulta ( IdUsuarioDeLaConsulta VARCHAR(128) NOT NULL , FechaDesde DATETIME NOT NULL , FechaHasta DATETIME NOT NULL , CONSTRAINT ACCAB_PENDIENTES_APLICACION_Consulta_PK PRIMARY KEY (IdUsuarioDeLaConsulta) ) GO
Al ingresar a una consulta esta tabla se pone en modo inserción, inserta el nombre del usuario logueado en el primer campo y espera que el usuario edite los valores de los otros dos campos.
- El campo IdUsuarioDeLaConsulta no se ve en la pantalla ya que no es visible.
- Esta tabla permanece en modo inserción en todo momento y los valores ingresados no se graban en la tabla de la consulta.
Un ejemplo de comando muy sencillo para esos argumentos sería:
SELECT listademovimientos.* FROM listademovimientos WHERE listademovimientos.Fecha BETWEEN FBN(FechaDesde) AND FBN(FechaHasta) ORDER BY listademovimientos.Fecha
Páginas en la categoría «DEV CONSULTAS»
Las siguientes 4 páginas pertenecen a esta categoría, de un total de 4.