ejemplo de trigger

14
EJEMPLO DE TRIGGER --CREANDO LA BASE DE DATOS CREATE DATABASE EJERTRIGGER GO --USO USE EJERTRIGGER GO --CREANDO LA TABLA PRODUCTOS CREATE TABLE PRODUCTOS (ID_PRODUCTO CHAR(8) PRIMARY KEY NOT NULL, NOMBREPRODUCTO VARCHAR(25)NOT NULL, EXISTENCIA INT NULL, PRECIO DECIMAL(10,2)NOT NULL, PRECIOVENTA DECIMAL (10,2)) GO --CREANDO LA TABLA PEDIDO CREATE TABLE PEDIDO (ID_PEDIDO INT IDENTITY, ID_PRODUCTO CHAR(8) NOT NULL, CANTIDAD_PEDIDO INT CONSTRAINT PK_ID_PRODUCTO FOREIGN KEY(ID_PRODUCTO)REFERENCES PRODUCTOS(ID_PRODUCTO)) GO --CREANDO LA TABLA HISTORIAL CREATE TABLE HISTORIAL (ID_PRODUCTO CHAR(8) PRIMARY KEY NOT NULL, NOMBREPRODUCTO VARCHAR(25)NOT NULL, EXISTENCIA INT NULL, PRECIO DECIMAL(10,2)NOT NULL, PRECIOVENTA DECIMAL (10,2)) GO --CREANDO LA TABLA HISTORIALPRODUCTOS CREATE TABLE HISTORIALPRODUCTOS (NOMBRE VARCHAR(100), PRECIOVENTA FLOAT, USUARIO VARCHAR(100), FECHA SMALLDATETIME, ESTADO CHAR(1)) GO CREATE TRIGGER TRG_PRODUCTOS_INSER ON PRODUCTOS FOR INSERT AS BEGIN INSERT INTO HISTORIAL SELECT*FROM INSERTED END GO CREATE TRIGGER TRG_PRODUCTOS_OK ON PRODUCTOS

Upload: lucio-guerra

Post on 26-Jul-2015

30 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Ejemplo de Trigger

EJEMPLO DE TRIGGER

--CREANDO LA BASE DE DATOSCREATE DATABASE EJERTRIGGERGO--USOUSE EJERTRIGGERGO--CREANDO LA TABLA PRODUCTOSCREATE TABLE PRODUCTOS(ID_PRODUCTO CHAR(8) PRIMARY KEY NOT NULL,NOMBREPRODUCTO VARCHAR(25)NOT NULL,EXISTENCIA INT NULL,PRECIO DECIMAL(10,2)NOT NULL,PRECIOVENTA DECIMAL (10,2))GO--CREANDO LA TABLA PEDIDOCREATE TABLE PEDIDO(ID_PEDIDO INT IDENTITY,ID_PRODUCTO CHAR(8) NOT NULL,CANTIDAD_PEDIDO INT CONSTRAINT PK_ID_PRODUCTO FOREIGN KEY(ID_PRODUCTO)REFERENCES PRODUCTOS(ID_PRODUCTO))GO--CREANDO LA TABLA HISTORIALCREATE TABLE HISTORIAL(ID_PRODUCTO CHAR(8) PRIMARY KEY NOT NULL,NOMBREPRODUCTO VARCHAR(25)NOT NULL,EXISTENCIA INT NULL,PRECIO DECIMAL(10,2)NOT NULL,PRECIOVENTA DECIMAL (10,2))GO--CREANDO LA TABLA HISTORIALPRODUCTOS CREATE TABLE HISTORIALPRODUCTOS (NOMBRE VARCHAR(100), PRECIOVENTA FLOAT, USUARIO VARCHAR(100), FECHA SMALLDATETIME, ESTADO CHAR(1))GOCREATE TRIGGER TRG_PRODUCTOS_INSERON PRODUCTOSFOR INSERTAS BEGININSERT INTO HISTORIALSELECT*FROM INSERTEDEND GOCREATE TRIGGER TRG_PRODUCTOS_OKON PRODUCTOSFOR INSERTAS DECLARE @NOM VARCHAR(100)DECLARE @PRE FLOATSELECT @NOM=NOMBREPRODUCTO,@PRE=PRECIOFROM INSERTEDINSERT INTO HISTORIALPRODUCTOS VALUES(@NOM,@PRE,SUSER_NAME(),GETDATE(),'I')GO

Page 2: Ejemplo de Trigger

--TRIGGER QUE ACTUALIZA EL PRODUCTO SEGUN EL PEDIDOCREATE TRIGGER TRG_PEDIDO_ARTICULOS_OKON PEDIDOFOR INSERTAS UPDATE PRODUCTOS SET EXISTENCIA =EXISTENCIA -(SELECT CANTIDAD_PEDIDO FROM INSERTED )WHERE ID_PRODUCTO=(SELECT ID_PRODUCTO FROM INSERTED)GO--INSERTANDO REGISTROS A LA TABLA PRODUCTOSINSERT INTO PRODUCTOS VALUES('P001','PANTALLA',5,10,12.5)INSERT INTO PRODUCTOS VALUES('P002','PARLATES',7,10,11.5)

GO--ACTUALIZANDO EL REGISTRO SEGUN EL PEDIDOINSERT INTO PEDIDO VALUES('P002',5)GO--VISUALIZARSELECT * FROM PRODUCTOSSELECT * FROM HISTORIALSELECT * FROM HISTORIALPRODUCTOSSELECT*FROM PEDIDO

Procedimientos Almacenados (INSERT, UPDATE, DELETE)

EJEMPLO PRACTICO PARA INSERTAR, ACTUALIZAR Y ELIMINAR CON PROCEDIMIENTOS ALMACENADOS; TAMBIEN SE HACE USO DE UNA FUNCION PARA PONER LA FECHA DE ALTA, PARA ELLO SOLO SE NECESITA LA FECHA DE INSCRIPCION.

--CREANDO LA BASE DE DATOSCREATE DATABASE SEPELIOSGO--HACIENDO USOUSE SEPELIOSGO--CREANDO LA TABLA CREATE TABLE TITULARES_SEPELIOS(CODIGO_MUDULAR VARCHAR(4),NUMERO_SOLICITUD VARCHAR(5),APELLIDOS VARCHAR(35),NOMBRES VARCHAR(35),FECHA_INS DATETIME,FECHA_ALTA DATETIME,[PLAN] INT,MONTO DECIMAL)GO--FUNCION PARA LA FECHA DE ALTA CREATE FUNCTION FECHA_ALTA(@FECHA_INS DATETIME)RETURNS DATETIMEBEGINRETURN DATEADD(MONTH,2,@FECHA_INS)ENDGO--PROBANDO LA FUNCIONSELECT DBO.FECHA_ALTA('01/01/2010')GO--PROCEDIMIENTO ALMACENADO (INSERTAR)CREATE PROCEDURE USP_TITULARES_S_INSERTAR@CODMOD VARCHAR(4),@NOSOLI VARCHAR(5),

Page 3: Ejemplo de Trigger

@APELLI VARCHAR(35),@NOMB VARCHAR(35),@FECINS DATETIME,@PLAN INT,@PAGO DECIMALASBEGININSERT INTO TITULARES_SEPELIOS VALUES(@CODMOD, @NOSOLI,@APELLI,@NOMB,@FECINS,DBO.FECHA_ALTA(@FECINS),@PLAN,@PAGO)ENDGO--PROCEDIMIENTO ALMACENADO (ACTUALIZAR)CREATE PROCEDURE USP_TITULARES_S_ACTUALIZAR@CODMODU VARCHAR(4),@NOSOL VARCHAR(5),@APELL VARCHAR(35),@NOM VARCHAR(35),@FECIN DATETIME,@P INT,@PAG DECIMALASBEGINUPDATE TITULARES_SEPELIOS SET NUMERO_SOLICITUD = @NOSOL, APELLIDOS = @APELL,NOMBRES = @NOM,FECHA_INS = @FECIN,FECHA_ALTA = DBO.FECHA_ALTA(@FECIN),[PLAN] =@P,MONTO = @PAG WHERE CODIGO_MUDULAR = @CODMODUENDGO--PROCEDIMIENTO ALMACENADO (ELIMINAR)CREATE PROCEDURE USP_TITULARES_S_ELIMINAR@CODIGO VARCHAR(4)AS DELETE FROM TITULARES_SEPELIOSWHERE CODIGO_MUDULAR= @CODIGO GO--DEMOSTRACION--INSERTARGOEXECUTE USP_TITULARES_S_INSERTAR 'S001','S1','VARGAS','LUIS','01/01/2011',1,700--ACTUALIZARGOEXECUTE USP_TITULARES_S_ACTUALIZAR 'S001','S2','JORGE','LUIS','01/01/2010',2,800--ELIMINARGOEXECUTE USP_TITULARES_S_ELIMINAR 'S001'--MOSTRANDO LA TABLAGOSELECT * FROM TITULARES_SEPELIOS

Ejemplo de uso de un JTable

Page 4: Ejemplo de Trigger

Código Fuentepackage examen;import javax.swing.table.DefaultTableModel;import javax.swing.*;import java.util.Vector;public class TABLA extends javax.swing.JFrame {double contotal=0;DefaultTableModel tablam = new DefaultTableModel();public TABLA() { initComponents(); tablam.addColumn("Producto");tablam.addColumn("Precio");tablam.addColumn("Cantidad");tablam.addColumn("Total");jtablecontenido.setModel(tablam);}private void btnnuevoActionPerformed(java.awt.event.ActionEvent evt) { txtcantidad.setText("");txtcantidad.requestFocus();} private void cmbseleccioneItemStateChanged(java.awt.event.ItemEvent evt) { int selectedIndex = this.cmbseleccione.getSelectedIndex();switch (selectedIndex) {case 1:txtprecio.setText("15");jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/mouse.jpg"));break;case 2:txtprecio.setText("200");jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/impresora.jpg"));break;case 3:txtprecio.setText("20");jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/teclado.jpg"));break;case 4:txtprecio.setText("50");

Page 5: Ejemplo de Trigger

jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/usb.jpg"));break;case 5:txtprecio.setText("80");jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/camara.jpg"));break;case 6:txtprecio.setText("450");jlbimagen.setIcon(new ImageIcon("F:/NETBEANS/EXAMEN/imagenes/monitor.jpg"));break;}} private void btnagregarActionPerformed(java.awt.event.ActionEvent evt) { double precio = Integer.parseInt(txtprecio.getText());int cantidad = Integer.parseInt(txtcantidad.getText());double total; double desc;double prec;if (check.isSelected()){prec = precio * cantidad;desc = prec * 0.15;total = prec - desc;}else{total = precio * cantidad;}contotal = contotal + total;this.txttotales.setText(contotal +"");Vector datos = new Vector();datos.addElement(this.cmbseleccione.getSelectedItem());datos.addElement(txtprecio.getText());datos.addElement(txtcantidad.getText());datos.addElement(total +"");tablam.addRow(datos);jtablecontenido.setModel(tablam);txtcontador.setText(tablam.getRowCount()+"");} private void btnquitarActionPerformed(java.awt.event.ActionEvent evt) { int indice = jtablecontenido.getSelectedRow();tablam.removeRow(indice);jtablecontenido.setModel(tablam);} private void btnsalirActionPerformed(java.awt.event.ActionEvent evt) { if (javax.swing.JOptionPane.showConfirmDialog(this,"Esta seguro","Aviso",javax.swing.JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){System.exit(0);}}

Page 6: Ejemplo de Trigger

PowerBuilder

USO DE DataWindows

Objeto: w_8 - Evento: abiertodw_1.setTransObject (SQLCA)dw_1.Retrieve ()dw_1.insertRow (0)dw_2.setTransObject (SQLCA)dw_2.Retrieve ()Objeto: cb_1 - Evento: clic

Page 7: Ejemplo de Trigger

int c, sto, gatocadena prodiciembre preFecha FECdw_1.AcceptText ()c = dw_1.getItemNumber (1, "Código")= dw_1.getItemString pro (1, "Producto")pre dw_1.getItemDecimal = (1, "Precio")= dw_1.getItemNumber sto (1, " stock ")= cat dw_1.getItemNumber (1, "categoria")insertar en Productos (ProductID, ProductName, preciounitario, UnidadesEnExistencias, IdCategoría)valores (: c,: pro,: pre,: sto,: cat);si sqlca.sqlcode = 0 thenMessageBox ("Aviso", "Registro guardado", la información!)másMessageBox ("Error", "No guardo en sí El Registro", la información!)end ifdw_1.setItem (1, "Código", 0)dw_1.setItem (1, "Producto ","")dw_1.setItem (1, "Precio", 0)dw_1.setItem (1, "stock", 0)dw_1 . setItem (1, "categoria", 1)dw_1.setColumn ("codigo")dw_1.setfocus ()Objeto: cb_2 - Evento: clicint c, sto, gato, retcadena prodiciembre preFecha FECdw_1.AcceptText ()c = dw_1.getItemNumber (1, "Código")Seleccione ProductName, precioUnitario, UnidadesEnExistencias, IdCategoría en: pro,: pre,: sto,: gato de Productos en ProductID =: c;si sqlca.sqlcode = 100 entoncesMessageBox ("Aviso", "Codigo no existe")dw_1.setColumn (0)dw_1.setFocus ()otradw_1.setItem (1, "Producto", pro)dw_1.setItem (1, " Precio ", pre)dw_1.setItem (1, "stock", sto)dw_1.setItem (1, "categoria", gato)end ifObjeto: cb_3 - Evento: clic/ / Actualizarint c, sto, gatocadena prodiciembre preFecha FECdw_1.AcceptText ()c = dw_1.getItemNumber (1, "Código")= dw_1.getItemString pro (1, "Producto")pre dw_1.getItemDecimal = (1, "Precio")= dw_1.getItemNumber sto (1, " stock ")= cat dw_1.getItemNumber (1, "categoria")/ / MessageBox ("", c)Productos de actualización establecidos ProductName =: pro, preciounitario =: pre,UnidadesEnExistencias =: sto, IdCategoría =: cat donde ProductID =: c;dw_2.setTransObject (SQLCA)dw_2.Retrieve ()Objeto: cb_4 - Evento: clicint cdw_1.AcceptText ()c = dw_1.getItemNumber (1, "Código")Productos Táchese lo que ProductID =: c;

Page 8: Ejemplo de Trigger

dw_2.setTransObject (SQLCA)dw_2.Retrieve ()Objeto: cb_5 - Evento: clicint n, j= n dw_2.rowcount ()bacalao int opcpara j = 1 hasta n= opc dw_2.getItemNumber (j, "estado")cod = dw_2.getItemNumber (j, "obj")si opc = 1, entoncesProductos borrar según sea ProductID =: bacalao;final sila próximadw_2.setTransObject (SQLCA)dw_2.Retrieve ()

Mostrar Imágenes a un jLabel desde un jComboBox

Código Fuentepackage jcombobox;

import javax.swing.ImageIcon;

import javax.swing .*;

import java.awt .*;

public class JCOMBOBOXDDM extends javax.swing.JFrame {

public JCOMBOBOXDDM() {

initComponents();

this.jLabel2.setIcon(new ImageIcon("D:/COMBOBOX/imagenes/entrada.jpg"));

cmbimagen.addItem("SELECIONE");

cmbimagen.addItem("Imagen 1");

cmbimagen.addItem("Imagen 2");

cmbimagen.addItem("Imagen 3");

cmbimagen.addItem("Imagen 4");

cmbimagen.addItem("Imagen 5");

cmbimagen.addItem("Imagen 6");

cmbimagen.addItem("Imagen 7");

}

private void cmbimagenItemStateChanged(java.awt.event.ItemEvent evt) {

int selectedIndex = cmbimagen.getSelectedIndex();

Page 9: Ejemplo de Trigger

switch (selectedIndex) {

case 1: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/01.gif"));break;

case 2: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/02.gif"));break;

case 3: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/03.gif"));break;

case 4: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/04.gif"));break;

case 5: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/05.gif"));break;

case 6: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/06.gif"));break;

case 7: this.jLabel2.setIcon(new

ImageIcon("D:/COMBOBOX/imagenes/07.gif"));break;

}

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

System.exit(0);

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

this.jTextField1.setText(this.getName());

}

USO DE JTREE - SWING

Page 10: Ejemplo de Trigger

Código Fuentepaquete JTree;javax.swing.JTree importación;javax.swing.tree.DefaultMutableTreeNode importación;javax.swing.tree.DefaultTreeModel importación;javax.swing.tree.TreePath importación;JTree clase pública se extiende javax.swing.JFrame (DefaultMutableTreeNode raiz = DefaultMutableTreeNode nuevo ("Software");DefaultTreeModel Modelo = nueva DefaultTreeModel (raiz);int i = 2;Objeto de nodo;JTree pública () (initComponents ();DefaultMutableTreeNode n1 = DefaultMutableTreeNode nueva ("Windows");DefaultMutableTreeNode n2 = DefaultMutableTreeNode nuevo ("Excel");DefaultMutableTreeNode n3 = DefaultMutableTreeNode nuevo ("Word");modelo.insertNodeInto (n1, raiz, 0);modelo.insertNodeInto (n2, raiz, 1);modelo.insertNodeInto (n3, raiz, 2);DefaultMutableTreeNode NN1 = DefaultMutableTreeNode nueva ("Escritorio");DefaultMutableTreeNode nn2 = DefaultMutableTreeNode nueva ("Carpetas");DefaultMutableTreeNode NN3 = DefaultMutableTreeNode nuevo ("Acceso Directo");DefaultMutableTreeNode nn4 = DefaultMutableTreeNode nueva ("fórmulas");DefaultMutableTreeNode NN5 = DefaultMutableTreeNode nueva ("Graficos");DefaultMutableTreeNode nn6 = DefaultMutableTreeNode nueva ("macros");DefaultMutableTreeNode nn7 = DefaultMutableTreeNode nueva ("Impresión");DefaultMutableTreeNode NN8 = DefaultMutableTreeNode nueva ("Formato");DefaultMutableTreeNode nn9 = DefaultMutableTreeNode nueva ("Tabulacion");modelo.insertNodeInto (NN1, n1, 0);modelo.insertNodeInto (nn2, n1, 1);modelo.insertNodeInto (NN3, n1, 2);modelo.insertNodeInto (nn4, n2, 0);modelo.insertNodeInto (NN5, n2, 1);modelo.insertNodeInto (nn6, n2, 2);modelo.insertNodeInto (nn7, N3, 0);modelo.insertNodeInto (NN8, n3, 1);modelo.insertNodeInto (nn9, n3, 2);this.jTree1.setModel (modelo);

Page 11: Ejemplo de Trigger

)private void jTree1MousePressed (evt java.awt.event.MouseEvent) (intentar(TreePath selPath = this.jTree1.getPathForLocation (evt.getX (), evt.getY ());Nodo = selPath.getLastPathComponent ();

/ / Javax.swing.JOptionPane.showMessageDialog (esto, nodo.toString ());)catch (ex java.lang.NullPointerException)())private void jTree1ValueChanged (evt javax.swing.event.TreeSelectionEvent) (/ * X = TreePath evt.getPath ();Object [] = Nodos x.getPath ();para (objeto nodo: Nodos) ()DefaultMutableTreeNode ultimoNodo =(DefaultMutableTreeNode) Nodos [nodos.length-1];javax.swing.JOptionPane.showMessageDialog (esto, ultimoNodo.toString ());*// / Javax.swing.JOptionPane.showMessageDialog (esto, i);)private void jButton2ActionPerformed (evt java.awt.event.ActionEvent) (intentar(DefaultMutableTreeNode x = (DefaultMutableTreeNode) nodo;modelo.removeNodeFromParent (x);)catch (java.lang.IllegalArgumentException ex)(javax.swing.JOptionPane.showMessageDialog (esto: "No Borrar PUEDE El Nodo raiz");))

private void jButton1ActionPerformed (evt java.awt.event.ActionEvent) (DefaultMutableTreeNode = nodo nuevo DefaultMutableTreeNode (this.jTextField1.getText ());i + = 1;modelo.insertNodeInto (nodo, raiz, i);this.jTree1.setModel (modelo);)

Page 13: Ejemplo de Trigger

Código Fuentepackage clases;import javax.swing.table.DefaultTableModel;import javax.swing.*;import java.util.Vector;public class FORM extends javax.swing.JFrame {DefaultTableModel modelo = new DefaultTableModel();public FORM() {initComponents();modelo.addColumn("Codigo");modelo.addColumn("Nombre");modelo.addColumn("Apellidos");modelo.addColumn("Edad");modelo.addColumn("Telefono");modelo.addColumn("Direccion"); this.jTable1.setModel(modelo);}private void NUEVOActionPerformed(java.awt.event.ActionEvent evt) {this.nombre.setText("");this.edad.setText("");this.telefono.setText("");this.direccion.setText("");this.apellido.setText("");this.codigo.setText("");this.nombre.requestFocus();}private void QUITARActionPerformed(java.awt.event.ActionEvent evt) {int i = this.jTable1.getSelectedRow();modelo.removeRow(i);this.jTable1.setModel(modelo);} private void AGREGARActionPerformed(java.awt.event.ActionEvent evt) { Vector datos = new Vector();datos.addElement(this.codigo.getText());datos.addElement(this.nombre.getText());datos.addElement(this.apellido.getText());datos.addElement(this.edad.getText());datos.addElement(this.telefono.getText());datos.addElement(this.direccion.getText()); modelo.addRow(datos);this.jTable1.setModel(modelo);this.total.setText(modelo.getRowCount()+"");}private void DATOActionPerformed(java.awt.event.ActionEvent evt) { int f = this.jTable1.getSelectedRow();String nom = modelo.getValueAt(f,0)+"";javax.swing.JOptionPane.showMessageDialog(this,nom);} private void CERRARActionPerformed(java.awt.event.ActionEvent evt) { if (javax.swing.JOptionPane.showConfirmDialog(this,"Esta seguro","Aviso",javax.swing.JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){

Page 14: Ejemplo de Trigger

System.exit(0);}} private void EDITARActionPerformed(java.awt.event.ActionEvent evt) { String nombre = javax.swing.JOptionPane.showInputDialog(this,"");int fi = this.jTable1.getSelectedRow();modelo.setValueAt(nombre,fi,0);}