Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Tutorial (como empezar con Firebird) Novatos (https://www.clubdelphi.com/foros/showthread.php?t=68708)

ecfisa 21-06-2012 22:52:08

Hola fpirovani.

Se podría decir que definir un dominio en Firebird es similar a definir un tipo en Pascal o Delphi. Por ejemplo:
Código SQL [-]
CREATE DOMAIN CHAR_LICITO CHAR(1) CHECK(UPPER(VALUE) IN ('S','N'))
Crea un dominio llamado "CHAR_LICITO" de un caracter, cuyos valores permitidos son 'S' y 'N'.

Luego en lugar de hacer esto en cada una de nuestras tablas:
Código SQL [-]
CREATE TABLE XX_XX(
  CARACTER CHAR(1) CHECK(UPPER(VALUE) IN ('S','N')),
  ...
podríamos hacer:
Código SQL [-]
CREATE TABLE XX_XX(
  CARACTER CHAR_LICITO, 
  ...
Ahora bién, ¿ Cual es la ventaja de todo esto a parte de ahorrar escritura ?

Bueno... si pasado un tiempo decidimos que los caracteres lícitos serán 'A' y 'B' no será necesario recorrer todas las tablas en donde definimos la restricción para modificarla. Bastará con modificar el dominio:
Código SQL [-]
CREATE DOMAIN CHAR_LICITO CHAR(1) CHECK(UPPER(VALUE) IN ('A','B'))

Saludos.

fpirovani 21-06-2012 23:36:06

Gracias por tu respuesta.
Ahora entiendo, es mas practico si algun dia necesitas modificar ese campo...
TEngo muuuuucho por aprender....

Yo estoy usando IB Expert para crear las bases y las tablas, por lo que veo, vos lo haces por codigo. Se que estoy preguntando algo de novato, pero ¿donde se ingresa ese codigo?

Casimiro Notevi 21-06-2012 23:54:06

Por favor, recuerda que lo que estás preguntando no tiene nada que ver con el tema de este hilo, ya sabes, preguntas distintas en hilos distintos, gracias por tu colaboración :)

fpirovani 22-06-2012 00:10:23

Peron, no me di cuenta, es que estoy tratando de aperender esto casi de la nada, y me surgen mil preguntas.

Les agradezco su ayuda :)

Casimiro Notevi 22-06-2012 00:18:36

Ya, pero si las mezclamos en cualquier hilo que habla sobre cualquier otro tema, imagina el desbarajuste tan tremendo. Las búsquedas no servirían para nada, los títulos no describirían nada, etc. en fin, un desmadre :)
Echa un vistazo a nuestro FTP, hay gigas de información, tutoriales, programas, ejemplos, trucos, libros completos, etc.
Además está la sección de trucos, y por supuesto, antes de preguntar, usa la opción de "buscar". En caso de que no encuentres lo que busques entonces sería el momento de crear un nuevo hilo para hacer tu pregunta.
Recuerda nuestra guía de estilo, muchas gracias por tu colaboración :)

De paso te aconsejo el que quizás es el mejor libro de delphi enfocado a bases de datos: La cara oculta de Delphi (Ian Marteens), que lo cedió gratuitamente a la comunidad.
Ese es el libro perfecto para empezar con las bases de datos... y mucho más.

fpirovani 22-06-2012 00:51:00

Gracias por tus consejos, ya baje el libro y comence a leerlo, si bien ya manejo algo, lo ideal es empezar por el principio. :)

maxi915 06-04-2013 00:13:27

estoy haciendo el tuto y tengo un problema en este paso:
------------------------------------------------------------------------
Bien, ahora nos queda poner el codigo que necesitamos:
Empecemos por el IBQuery:

En la propiedad Database pondremos la direccion de la IBDatabase:
DataModule2.IBDatabase1

------------------------------------------------------------

me dice invalid property value, al copiar la direccion en esa propiedad.
controle que sea el datamodule2 y el database1, nose que esta pasando.....

Casimiro Notevi 06-04-2013 00:27:40

Cita:

Empezado por maxi915 (Mensaje 458142)
nose que esta pasando.....

Pues si no das más información, nosotros tampoco podemos decirte qué está pasando ;)

maxi915 06-04-2013 00:35:38

si, aveces me apuro a escribir y no explico bien.

de todas formas que mas puedo decirles?
sigo paso a paso el tuto y me salta ese error

Casimiro Notevi 06-04-2013 01:29:21

Componentes exactos que estás usando, versiones del mismo y de delphi, etc.
Ya que ese mensaje puede ser debido a una versión distinta de los componentes, pero que yo sepa no han cambiado la propiedad 'database', por lo que deberás indicar exactamente qué haces, qué componentes, qué tecleas, etc. y copiar el mensaje de error.
Resumiendo, que des la máxima información posible porque no somos adivinos ni tampoco vemos la pantalla de tu ordenador ;)

bulc 16-01-2014 12:54:14

Crear bases de datos y sus tablas por comandos C:\>
 
Me gustaría añadir que también se pueden crear bases de datos Firebird y sus tablas mediante comandos del command.exe (El antiguo DOS). Para ello basta salir a esta pantalla de fondo negro y escribir en el prompt del sistema estos comandos, uno a uno.
Basta pasar del command_DOS al command_ISQL de Firebird.
Antes de todo crea una carpeta y una subcarpeta para guardar los datos, desde el prompt de comandos, si quieres probar.
Sal de los directorios que aparecen y regresa a la raíz = Posición C:\ Para ello ejecuta:

c:\>CD\ [Intro] = change directory . Para la barra inversa (detrás de CD): Pulsar AltGr, y sin soltarla, la tecla [\ºª] que está a la izquierda del uno en cifra de la fila superior del teclado. Luego escribe en el prompt del dos:

C:\>MD C:\CARPETA1\SUB2 [Intro] = Crear carpeta y subc. para la basededato * .FDB

c:\> CD Program Files\firebird\firebird_2_5\BIN [Intro] =Pasamos al directorio donde están los ejecutables de Firebird.

Tendrás una fila de directorios más larga. Ahora arranca el ejecutable de sentencias SQL de Firebird.

C:\Program Files\Firebird\Firebird_2_5\BIN> ISQL [Intro] = Aquí arrancamos el procesador de órdenes SQL de Firebird.
Aparece el aviso de connect o create y el prompt del SQL de Fb.

A partir de ahora no olvides acabar cada sentencia con el carácter de cierre (;) -punto y coma- y luego pulsas la tecla intro como es habitual:
Creamos la base de datos escribiendo:
SQL\> CREATE DATABASE 'LOCALHOST:C:\CARPETA1\SUB1\MIBASE.FDB' USER 'SYSDBA' PASSWORD 'masterkey'; [Intro]
Si la orden es correcta aparece el prompt SQL>
Para salir del SQL escribe EXIT; o apaga a ventana de comandos.
Comprueba que la base de datos se creó realmente con:
SHOW DATABASE;

Para crear una tabla sencilla con los campos NUM, ITEM, FECHA; escribe en el SQL>
CREATE TABLE MiTabla (Num Integer, Item Varchar(20), Fecha Date);
Comprueba:
SHOW TABLE MiTabla;
Mete algo:
INSERT INTO MiTabla (Num, Item, Fecha) Values (1, 'Abeto negro', CURRENT_DATE);
y por último mira lo que hay en la tabla:
SELECT * FROM MiTabla;
Para salir ejecuta: (Si las sentencias son muy largas pulsa Intro y aparecen el prompt CON> de continuación)
Exit; (No olvides el punto y coma antes de pulsar Intro)

Ñuño Martínez 17-01-2014 21:21:18

Gracias bulc. :)^\||/

Quizá se pueda adaptar lo que explicas y crear archivos de comandos (cmd, bat) junto a pipes o flujos para automatizarlo.

bulc 17-01-2014 22:01:31

Si, así es. Un fichero texto plano script lo haría todo
 
Lo que pretendía era dejar esa opción abierta a los usuarios antes de pasar a DBExpress o FlameRobin.
Siempre me digo que lo que yo sé tiene poco valor comparado con lo que saben, y aportan, otros foreros.
Saludos,
JParada


La franja horaria es GMT +2. Ahora son las 11:54:49.

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