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)
-   -   ¿Codigo mal? (https://www.clubdelphi.com/foros/showthread.php?t=19558)

istradlin 17-03-2005 22:06:46

¿Codigo mal?
 
Quiero crear la siguiente tabla en una BD Interbase con el editor SQL del IB expert:

CREATE TABLE TALLER (
FICHA_NUMERO INTEGER PRIMARY KEY,
FECHA_ENTRADA DATE,
FECHA_SALIDA DATE,
FECHA_FAB_APARATO DATE,
FECHA_VENTA_APARATO DATE,
NUM_SERIE_APARATO VARCHAR(50),
COMENTARIO_APARATO VARCHAR(1000),
COMENTARIO_CLIENTE VARCHAR(1000),
COMENTARIO_PRESUPUESTO VARCHAR(1000),
COMENTARIO_REPARACION VARCHAR(1000),
COMENTARIO_ACCESORIOS VARCHAR(1000),
IMPORTE_REPARACION DECIMAL,
GARANTIA VARCHAR(1),
PRESUPUESTO VARCHAR(1),
ACEPTADO VARCHAR(1),
ID_APARATO INTEGER REFERENCES APARATOS(ID_APARATO),
NIF CHAR(17) REFERENCES CLIENTES(NIF)
);

pero me da este error:

This operation is not defined for system tables.
unsuccessful metadata update.
Column: FICHA_NUMERO not defined as NOT NULL - cannot be used in PRIMARY KEY/UNIQUE constraint definition.

por cierto los varchar(1) me gustaria que fuesen campos boleanos e importe_reparacion moneda (euros) pero no se que tipos de datos usar.

Gracias y un saludo.

marcoszorrilla 17-03-2005 22:18:09

Lo que te está diciendo es que para ser Primary Key tiene que ser declarada como "Not Null", ya que una clave primaria no puede admitir nulos.

En cuanto altipo de campo para los booleanos como interbase no contempla este tipo de datos con un Varchar(1) puede valer por ejemplo que solo admita T y F o V y F


Un Saludo.

istradlin 17-03-2005 22:57:16

ok tiu, muchisimas gracias, me has salvado la vida :). y lo del campo en euros, es decir un campo con decimales, creo que tiene tipo decimal, pero como hago para decirle que solo quiero dos decimales o eso lo hago luego en el delphi.

marcoszorrilla 17-03-2005 23:14:45

Tienes que crear un dominio y luego asocias el campo a dicho dominio.
Código:

  CREATE DOMAIN Euros AS
  DECIMAL(12,2)

Un Saludo.

istradlin 17-03-2005 23:17:08

muchisimas gracias de nuevo

istradlin 17-03-2005 23:19:33

ah y por ultimo y ya no molesto mas, hice un generador para que el campo id_aparato de la tabla aparato sea atonumerico y en el ib expert si que me funciona me lo genera y me lo pone en la fila cuando creo un nuevo registro pero luego en delphi por ejemplo un dbtable, cuando cubro un nuevo registro no me actualiza el campo id_aparato y por tanto luego cuando qquiero guardar el reistro me dice que no puede conetener un valor vacio


La franja horaria es GMT +2. Ahora son las 11:34: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