Power Builder - Crear Tablas por Scrip

   
Vista:
Imágen de perfil de Antonio

Crear Tablas por Scrip

Publicado por Antonio (1114 intervenciones) el 01/07/2014 21:49:20
Hola a todos:

un gran saludos,

necesito de su enorme experiencia, resulta que quiero crear tablas con sus índices pero hacerlo por código.

¿Alguien tiene un ejemplo o un link donde pueda obtener esa ayuda?


Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Adolfo

Crear Tablas por Scrip

Publicado por Adolfo (70 intervenciones) el 01/07/2014 23:17:52
Para SqlAnyWhere:

CREATE TABLE Usuarios(
Usu_Clave VarChar(10) Primary Key Not Null,
Usu_Nombre VarChar(30) Not Null,
Usu_Password VarChar(10) Not Null,
Usu_CamPass Bit Default 1,
Usu_Email VarChar(40) Null);

CREATE TRIGGER TR_Borra_Usuario ON Usuarios
FOR DELETE AS
DELETE MenxUsu
FROM Deleted, MenxUsu
WHERE MenxUsu.Usu_Clave = Deleted.Usu_Clave;

INSERT Usuarios(Usu_Clave,Usu_Nombre,Usu_Password,Usu_CamPass,Usu_Email) VALUES('Admin','Administrador del sistema','pruebas',0,'abc123@hotmail.com.mx');

CREATE TABLE MenxUsu(
Usu_Clave VarChar(10) Not Null,
Men_Clave varchar(50) Not Null,
Mxu_Posicion Int Not Null,
CONSTRAINT PK_MenxUsuarios
PRIMARY KEY CLUSTERED (Usu_Clave, Men_Clave),
CONSTRAINT FK_MenxUsu_Usuarios
FOREIGN KEY (Usu_Clave)
REFERENCES Usuarios(Usu_Clave));

CREATE TABLE Pesadas(
Pes_ID BigInt Identity Primary Key,
Ord_ID BigInt Null,
Pes_FecHorPri DateTime Not Null Default GetDate(),
Pes_PesoPri Int Not Null,
Pes_FecHorSeg DateTime Null,
Pes_PesoSeg Int Null,
Pes_Fecha Char(8) Null,
Pes_Bruto Int Null,
Pes_Tara Int Null,
Pes_Neto Int Null,
Pro_ID Int Not Null,
Pro_Nombre VarChar(40) Not Null,
Emp_ID Int Not Null,
Emp_Nombre VarChar(40) Not Null,
Tra_ID Int Not Null,
Tra_Nombre VarChar(40) Not Null,
Pes_Chofer VarChar(35) Not Null,
Pes_Placas VarChar(12) Not Null,
Pes_Completo Bit Default 0,
Pes_Cam1Ent Image Null,
Pes_Cam2Ent Image Null,
Pes_Cam3Ent Image Null,
Pes_Cam1Sal Image Null,
Pes_Cam2Sal Image Null,
Pes_Cam3Sal Image Null,
Pes_BolOffLine BigInt Null, /* Numero de boleto off line dado por el indicador, si vale null el registro no es sincronizado */
CONSTRAINT FK_Pesadas_Productos
FOREIGN KEY (Pro_ID)
REFERENCES Productos(Pro_ID),
CONSTRAINT FK_Pesadas_Empresas
FOREIGN KEY (Emp_ID)
REFERENCES Empresas(Emp_ID),
CONSTRAINT FK_Pesadas_Transportistas
FOREIGN KEY (Tra_ID)
REFERENCES Transportistas(Tra_ID));
CREATE INDEX Pesadas_Fecha ON Pesadas(Pes_Fecha);

CREATE TRIGGER TR_Actualiza_Fecha ON Pesadas
FOR INSERT
AS
BEGIN
DECLARE @Pes_ID BigInt,
@Pes_Fecha Char(8)

SELECT @Pes_ID = Pes_ID, @Pes_Fecha = forfec(Pes_FecHorPri,8,0) FROM Inserted
UPDATE Pesadas
SET Pes_Fecha = @Pes_Fecha
WHERE Pes_ID = @Pes_ID
END;

CREATE TRIGGER TR_Actualiza_Neto ON Pesadas
FOR UPDATE
AS
BEGIN
DECLARE @Pes_ID BigInt,
@Ord_ID BigInt,
@Pes_Bruto Int,
@Pes_Tara Int,
@Pes_PesoPri Int,
@Pes_PesoSeg Int,
@Pes_Completo Bit,
@Pes_FecHora DateTime,
@Pes_FecHorSeg DateTime

IF UPDATE(Pes_Completo)
BEGIN
SELECT @Pes_ID = Pes_ID, @Pes_PesoPri = Pes_PesoPri, @Pes_PesoSeg = Pes_PesoSeg, @Pes_Completo = Pes_Completo, @Pes_FecHorSeg = Pes_FecHorSeg, @Ord_ID = Ord_ID
FROM Inserted

IF @Pes_Completo = 1
BEGIN
/* Son 2 pesadas */
IF @Pes_PesoPri > @Pes_PesoSeg
SELECT @Pes_Bruto = @Pes_PesoPri, @Pes_Tara = @Pes_PesoSeg, @Pes_FecHora = @Pes_FecHorSeg
ELSE
SELECT @Pes_Bruto = @Pes_PesoSeg, @Pes_Tara = @Pes_PesoPri, @Pes_FecHora = @Pes_FecHorSeg

UPDATE Pesadas
SET Pes_Fecha = forfec(@Pes_FecHora,8,0),
Pes_Bruto = @Pes_Bruto,
Pes_Tara = @Pes_Tara,
Pes_Neto = ABS(@Pes_Bruto - @Pes_Tara)
WHERE Pes_ID = @Pes_ID

UPDATE Ordenes
SET Ord_Completo = 1
WHERE Ord_ID = @Ord_ID
END
END
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de antonio

Crear Tablas por Scrip

Publicado por antonio (1114 intervenciones) el 03/07/2014 03:18:43
Mil gracias por tu apoyo Adolfo:

Una pregunta ese script se pueda aplicar cuando usar MySQL?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar