FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Saber detalles de los campos
Hola compañeros mi ayuda va con respecto a saber los detalles de los campos de una tabla firebird, hasta el momento he logrado detectar tipos Varchar y su tamaño, 'DOUBLE PRECISION, INTEGER, DATE, TIME, TIMESTAMP, BLOB aunque no de que tipo y si el campo es NOT NULL, pero me falta el resto de tipos y si es co decimales, si tienen un ValueIn, o en el Caso del Blob si es binario o memo. Como siempre si podéis ayudarme os lo agradecería, y una vez termine la aplicación la publicare.
Con respecto a la aplicación es un sistema para crear la base de datos y las tablas con campos pre asignados.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#2
|
|||
|
|||
Hola...
Si buscas obtener de una base de datos ya creada esta información, una forma es extrayendo el metadata de la base de datos, otra es consultando las tablas de sistema que se crean en todas las bases de datos de Firebird. Tal vez este enlace te sirva de algo: http://www.felix-colibri.com/papers/...em_tables.html Saludos... |
#3
|
||||
|
||||
Muy buena la página relacionada.
Prueba esto que por cortesía de Al González pude conocer. Luego le añadí alguna cosilla. Necesitas crear esta tabla para que te rule el procedimiento almacenado.
Ahora el procedimiento almacenado
Espero qiue te mole. Si quieres condensar, quita todo lo que dependa de la tabla que te he comentado para crear. Para usarlo, utiliza "select * from z_tablas". Puedes filtrar por la tabla que quieras. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#4
|
||||
|
||||
Gracias por la referencia, Javier. Aunque ya no reconozco casi nada de ese código que has puesto.
Aprovecho para dejarles la vista que uso en las bases de datos Firebird. Me ayuda a encontrar detalles de un campo, sobre todo cuando solamente recuerdo su nombre pero no en qué tabla está.
Saludos. Al González. |
#5
|
||||
|
||||
Muchas Gracias Pero, lo que quiero es pasarlos a un listview y pensaba no tener que montar otra base de datos para ello?..
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#6
|
||||
|
||||
Muy interesante, buena aportación
|
#7
|
||||
|
||||
¿Montar otra base de datos?, no he entendido bien qué es lo que necesitas.
|
#8
|
||||
|
||||
Cierto Casimiro AI González lo que monta es una vista, como fjcg02 empezaba creando una tabla, pensé que el códiigo de Ai González, también empezaba con crear una tabla. Eso si nunca he montado una vista, así que pregunto, los monto en un IBQuery??
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#9
|
|||
|
|||
Hola...
Una vista es un objeto más de la base de datos, así que la tienes que crear como si crearas una tabla o un procedimiento almacenado. Otra cosa, es AL González, no AI González... Saludos... |
#10
|
||||
|
||||
Gracias Marcos, llevo como dos años tratando de hacérselo saber. Hasta he llegado a pensar que lo hace a propósito.
|
#11
|
||||
|
||||
Pues de verdad que llevo todo este tiempo pensado que Era AI y No Al, te pido disculpas, y debo comfesar que no sabia si era una abreviatura ni nada por el Estilo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#12
|
||||
|
||||
No hay problema, José Luis. Un abrazo hasta aquellas Islas Afortunadas.
|
#13
|
||||
|
||||
Hola a todos,
parece que mi código a alguno le ha parecido un poco fuerte. Si os fijais, es casi igual al que Al publica. De hecho, lo saqué de una bbdd que tenía publicada en su antigua página. Lo que ocurre, es que yo añadí una tabla ( que es la que se crea al principio), en la que guardo información mía propia de cada query, campo, ... Estos son los campos que devuelve la procedure: No sé si es suficientemente claro, pero a mi me simplifica mucho el trabajo. Tengo una tabla en la que defino todo lo que puedo de los campos, y en los formularios, éstos se van montando y configurando 'al vuelo' al crearlo. Al crear el formulario, le indico cual es la query pricipal, y el resto lo monta 'sólo'. Espero que os sirva de ayuda. No tengo todo desarrollado por falta de tiempo, pero creo que por ahí hay que pegarle. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - Última edición por Casimiro Notevi fecha: 25-06-2011 a las 16:39:47. |
#14
|
||||
|
||||
Por supuesto que sirve, ya lo tengo también en mi "almacén"
|
#15
|
||||
|
||||
Perdona, fjcg02, pero donde dices
Cita:
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#16
|
||||
|
||||
Hola Jose Luis,
te comento por encima cómo me gustaría hacer el tema, ya que como te he comentado, no lo tengo casi ni empezado. En este caso, tengo el procedimiento almacenado, y dos tablas llamadas Z_Tablas y Z_Definicion_Campos. Lo puedes ver en la imagen del ibexpert que te incluyo. En la tabla Z_Tablas tengo simplemente la lista de tablas y vistas. En la tabla Z_Definicion _campos, los campos de cada tabla ovista, y todas sus propiedades. IDCAMPO INTEGER NOT NULL, IDTABLA INTEGER, TABLA VARCHAR(20) NOT NULL, CAMPO VARCHAR(20) NOT NULL, TIPOCAMPO Tipos definidos por mi LABEL Etiqueta del campo tal y como la quiero visualizar MASCARA Mascara para editar MASCARADISPLAY Mascara para displayar TAMANIO tamaño para la visualizacion NOMBRE_SI_FK Que nombre tiene si es FK ( ejemplo, si el campo es ID_ARTICULO, y es fk, pondré ARTICULO LABEL_SI_FK igual QUERY_SI_FK Query de dondeviene el dato CAMPOSACTUALIZA qué campos actualiza si el usuario lo edita. Ejemplo articulo, cambia el idartivulo y el precio NEWVALUE valor del campo cuando se da de alta un registro nuevo ( ejemplo 0 para los enteros o flotantes) o funcion que devuelve un valor calculado ONVALIDATE funcion que valida el dato si es necesario LISTA si es una lista de valores, que lita es para recuperarla de una tabla donde las tengo definidas. En este caso el procedimiento almacenado lo utilizo para dar de alta automáticamente los campos cuando soy de alta una tabla o query. Pones un Dataset con la query select * from z_tablas where tabla='nombretabla' y al abrirlo, ya tienes todos los datos de los campos de la tabla que quieras. Si sólo quieres un campo, añade un filtro para que lo localice. Luego, en el programa, lo que hago es montar 'al vuelo' los datasets y los grids, dándoles las propiedades 'al vuelo'. Esto es lo que se ejecuta en la creación de la ventana del dibujo que adjunto. ( Nota: no puedo adjuntar más archivos, y paso de esas páginas de almacenar imágenes que hay por ahí )
No sé si ha sido suficientemente aclaratorio. Si alguien está interesado, le puedo dar más información si me quiere ayudar a terminarlo o a estudiarlo. Con media docena de ventanas 'maestras' y sobre todo, resolver bien cómo enlazar procesos desde una ventana con los datos de la misma, se puede hacer una cosa interesante. He estado mirando frameworks varios, y en cuanto se ponen a hablar de objetos, instanciar, ... me mareo. Si además puedo encajar todo esto con herencia, ... pues sería ideal. Pero mi tiempo y conociemientos son limitados. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#17
|
||||
|
||||
fjcg02 me quedo , esto yo quería algo en delphi, bromas a parte, me gustaría si puedes podrías poner una pequeña demo, veras, lo que quiero hacer es lo siguiente, tengo un programa que se llama autoabm, para la generación de Forms, de momento con un sólo tipo (modelo), tanto de form como de búsqueda, ahora estoy preparando un programa, que genera las bases de datos en firebird, por tipos grupos o bases preestablecidas, sólo crea no modifica, explico un poco los tipos para que me entendais tipos, son los diferentes campos por valores propios (integer, varchar, etc) o propios notas (Blob subtipo 0 creo), grupos si elegimos el grupo dirección sería Dirección, cp, población provincia y por bases preestablecidas, si elegimos clientes, los datos típicos de una base de datos clientes, cada campo tendrá las opciones normales, por supuesto podemos desechar si crearlo o no, etc pero además añadirá si pertenece a un grupo (nombre del Grupo)1, el hint del campo, el displaylabel, el mask, wl whith de su tamaño, etc.
una vez terminado se montaría con el auto abm creando el form con los campos de la base de datos, a falta de conectar el Datasource. 1 en el programa se montaría dentro de un Groupbox
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" Última edición por José Luis Garcí fecha: 27-06-2011 a las 08:49:18. |
#18
|
||||
|
||||
fjcg02, Esta tarde me he puesto de nuevo con el código que aportaste, y por fin entendí su funcionamiento (si ya sé que soy un tronco, pero que le vamos a hacer, puse 2 ibscript, en el primero metí el primer código que genera la base tabla para la base de datos, ok, en el segundo el código para la vista (eso es por lo menos lo que entiendo, aunque no vi el tema del View), pero este no me aparece en Ibexpert, luego puse un Ibquery, con su datasource y dbgrid, le doy al botón para ejecutar con el "select * from z_tablas", que me comentabas y funciono perfecto, falta como ya comentabas añadirle un where para ver la tabla que quiera, en vez de todas.
Muchas gracias funciona muy bien.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#19
|
||||
|
||||
No te preocupes, aquí no eres el unico trontxo que hay
Somos varios ... Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como seleccionar campos de una tabla sin saber cuantos van a seleccionar | david duarte | SQL | 7 | 05-04-2010 21:15:43 |
Saber Campos Con Clave Forana, Saber campos con clave FORANA | vivamotos | Firebird e Interbase | 2 | 18-09-2007 13:09:41 |
como puedo saber la cantidad de campos que tiene una tabla | CottonMouth | OOP | 1 | 27-06-2007 07:02:49 |
Campos calculados, facturas y detalles de facturas. | Letty | Conexión con bases de datos | 7 | 07-11-2003 11:19:44 |
cómo saber el nombre de los campos en ejecucion? | ramiretor | Conexión con bases de datos | 5 | 26-05-2003 17:20:47 |
|