Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-08-2014
electrobardo electrobardo is offline
Registrado
NULL
 
Registrado: ago 2014
Posts: 1
Poder: 0
electrobardo Va por buen camino
Emular la pantalla Input Parameters del SQL Editor de IbExpert

Buenas,

Tenemos una aplicación con un repositorio de Querys editables en runtime y programables, dependiendo de un servicio. Ahora salta la necesidad de ejecutar estos SQL en tiempo real, pero deben pedir datos (suele ser fechas o importes). Averiguar los parámetros es fácil, pero no encontramos la manera de saber el tipo y la longitud (del campo al que referencia ni hablamos!). Que es posible está claro, ya que el IbExpert lo hace en la pantalla Input Parameters (incluso si haces un SELECT de un PROCEDURE en Ib). He probado con parsers, como gaParser..., pero sin documentación está complicado... ¿alguien tiene alguna idea?

Saludos
Responder Con Cita
  #2  
Antiguo 07-08-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A partir de las tablas de sistema de Interbase/Firebird puedes conocer a partir del nombre del campo y la tabla a la que pertenece toda la información. En concreto el tipo y el tamaño del campo (si aplica).

Por ejemplo una consulta como esta te devolverá información sobre el campo1 de la tabla1

Código SQL [-]
SELECT  r.RDB$RELATION_NAME as table_name, 
        r.RDB$FIELD_NAME AS field_name,
        r.RDB$DEFAULT_VALUE AS field_default_value,
        f.RDB$FIELD_LENGTH AS field_length,
        f.RDB$FIELD_TYPE  AS field_type
FROM RDB$RELATION_FIELDS r
   LEFT JOIN RDB$FIELDS f ON r.RDB$FIELD_SOURCE = f.RDB$FIELD_NAME 
where r.RDB$FIELD_NAME='campo1' and r.RDB$RELATION_NAME='Tabla1'

Segun lo que te devuelva el tipo (entero):

-->261 = 'BLOB'
-->14 = 'CHAR'
-->40 = 'CSTRING'
-->11 = 'D_FLOAT'
-->27 = 'DOUBLE'
-->10 = 'FLOAT'
-->16 = 'INT64'
-->8 = 'INTEGER'
-->9 = 'QUAD'
-->7 = 'SMALLINT'
-->12 = 'DATE'
-->13 = 'TIME'
-->35 = 'TIMESTAMP'
-->37 = 'VARCHAR'
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cual es la diferencia entre un input box y un input query? j_flores3000 OOP 3 17-09-2015 05:17:34
Parameters y ProcedureName de TAdoStoreProc Cabanyaler Conexión con bases de datos 6 20-06-2012 14:14:10
no value given for one or more required parameters look SQL 7 24-01-2012 23:37:59
Not enough actual parameters Taburiente Varios 4 24-09-2011 21:43:40
No parameters Expected(ApplyUpdate) david duarte Varios 11 31-10-2005 23:16:27


La franja horaria es GMT +2. Ahora son las 06:45:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi