예제 #1
0
        public void GenerarProcedimientoBuscar()
        {
            List <String> arrLineas = new List <string>();

            GenerarComentarios(arrLineas);
            string strNombreSP = String.Format("{0}{1}_BUSCAR", Nomenclatura.SP, InfoTabla.NombreSinNomenclatura.ToUpper());

            arrLineas.Add(String.Format("CREATE PROCEDURE dbo.{0}", strNombreSP));

            if (InfoTabla.LlavesPrimarias.Count > 0)
            {
                arrLineas.Add("(");
                for (int intIndice = 0; intIndice < InfoTabla.LlavesPrimarias.Count; intIndice++)
                {
                    arrLineas.Add(String.Format("    {0}    {1}",
                                                Nomenclatura.ConcatenarParametroSP(InfoTabla.LlavesPrimarias[intIndice]),
                                                Nomenclatura.ConcatenarTipoDato(InfoTabla.LlavesPrimarias[intIndice])));
                }
                arrLineas.Add(")");
            }

            arrLineas.Add("AS");
            arrLineas.Add("BEGIN");

            GenerarSelect(InfoTabla.Columnas, arrLineas);
            arrLineas.Add(String.Format("     FROM    {0}", InfoTabla.Nombre));
            GenerarWhere(InfoTabla.LlavesPrimarias, arrLineas);

            arrLineas.Add("END");

            GuardarArchivo(arrLineas, strNombreSP, ".sql");
        }
예제 #2
0
        public void GenerarProcedimientoActualizar()
        {
            List <String> arrLineas = new List <string>();

            GenerarComentarios(arrLineas);
            string strNombreSP = String.Format("{0}{1}_ACTUALIZAR", Nomenclatura.SP, InfoTabla.NombreSinNomenclatura.ToUpper());

            arrLineas.Add(String.Format("CREATE PROCEDURE dbo.{0}", strNombreSP));

            GenerarParametrosEntrada((List <ALCSA.Generador.Entidades.BD.Columna>)InfoTabla.Columnas, null, arrLineas);

            arrLineas.Add("AS");
            arrLineas.Add("BEGIN");

            arrLineas.Add(String.Format("     UPDATE {0}", InfoTabla.Nombre));
            arrLineas.Add("     SET");

            for (int intIndice = 0; intIndice < InfoTabla.ColumnasSinLlavesPrimarias.Count; intIndice++)
            {
                arrLineas.Add(String.Format("            {0} = {1}{2}", InfoTabla.ColumnasSinLlavesPrimarias[intIndice].Nombre,
                                            Nomenclatura.ConcatenarParametroSP(InfoTabla.ColumnasSinLlavesPrimarias[intIndice]), InfoTabla.ColumnasSinLlavesPrimarias.Count - 1 == intIndice ? String.Empty : ","));
            }

            GenerarWhere(InfoTabla.LlavesPrimarias, arrLineas);
            arrLineas.Add("END");
            GuardarArchivo(arrLineas, strNombreSP, ".sql");
        }
예제 #3
0
 private void GenerarWhere(IList <ALCSA.Generador.Entidades.BD.Columna> columnas, List <string> lineas)
 {
     if (columnas.Count == 0)
     {
         return;
     }
     lineas.Add(String.Format("     WHERE  {0} = {1}", columnas[0].Nombre, Nomenclatura.ConcatenarParametroSP(columnas[0])));
     for (int intIndice = 1; intIndice < columnas.Count; intIndice++)
     {
         lineas.Add(String.Format("           AND {0} = {1}", columnas[intIndice].Nombre, Nomenclatura.ConcatenarParametroSP(columnas[intIndice])));
     }
 }
예제 #4
0
        public void GenerarProcedimientoInsertar()
        {
            List <String> arrLineas = new List <string>();

            GenerarComentarios(arrLineas);
            string strNombreSP = String.Format("{0}{1}_INSERTAR", Nomenclatura.SP, InfoTabla.NombreSinNomenclatura.ToUpper());

            arrLineas.Add(String.Format("CREATE PROCEDURE dbo.{0}", strNombreSP));
            int intIndice;

            GenerarParametrosEntrada(InfoTabla.ColumnasSinLlavesPrimarias, InfoTabla.LlavesPrimarias, arrLineas);

            arrLineas.Add("AS");
            arrLineas.Add("BEGIN");

            arrLineas.Add(String.Format("     INSERT INTO {0}", InfoTabla.Nombre));
            arrLineas.Add("     (");

            for (intIndice = 0; intIndice < InfoTabla.ColumnasSinLlavesPrimarias.Count; intIndice++)
            {
                arrLineas.Add(String.Format("          {0}{1}", InfoTabla.ColumnasSinLlavesPrimarias[intIndice].Nombre, InfoTabla.ColumnasSinLlavesPrimarias.Count - 1 == intIndice ? String.Empty : ","));
            }

            arrLineas.Add("     )");
            arrLineas.Add("     VALUES");
            arrLineas.Add("     (");

            for (intIndice = 0; intIndice < InfoTabla.ColumnasSinLlavesPrimarias.Count; intIndice++)
            {
                arrLineas.Add(String.Format("          {0}{1}", Nomenclatura.ConcatenarParametroSP(InfoTabla.ColumnasSinLlavesPrimarias[intIndice]), InfoTabla.ColumnasSinLlavesPrimarias.Count - 1 == intIndice ? String.Empty : ","));
            }

            arrLineas.Add("     )");

            if (InfoTabla.LlavesPrimarias.Count > 0)
            {
                arrLineas.Add(String.Empty);
                arrLineas.Add(string.Format("     SELECT {0} = SCOPE_IDENTITY()", Nomenclatura.ConcatenarParametroSP(InfoTabla.LlavesPrimarias[0])));
                arrLineas.Add(String.Empty);
            }

            arrLineas.Add("END");

            GuardarArchivo(arrLineas, strNombreSP, ".sql");
        }
예제 #5
0
        private void GenerarParametrosEntrada(IList <ALCSA.Generador.Entidades.BD.Columna> entradas, IList <ALCSA.Generador.Entidades.BD.Columna> salidas, List <string> lineas)
        {
            int  intIndice;
            bool blnConSalidas = salidas != null && salidas.Count > 0 ? true : false;

            lineas.Add("(");
            for (intIndice = 0; intIndice < entradas.Count; intIndice++)
            {
                lineas.Add(String.Format("     {0}     {1}{2}",
                                         Nomenclatura.ConcatenarParametroSP(entradas[intIndice]),
                                         Nomenclatura.ConcatenarTipoDato(entradas[intIndice]),
                                         entradas.Count - 1 == intIndice ? blnConSalidas ? "," : string.Empty : ","));
            }

            if (blnConSalidas)
            {
                lineas.Add(String.Format("     {0}Salida     {1} OUTPUT",
                                         Nomenclatura.ConcatenarParametroSP(salidas[0]),
                                         Nomenclatura.ConcatenarTipoDato(salidas[0])));
            }

            lineas.Add(")");
        }