Example #1
0
 public Operations(string file, TableData.Operation oper, string fname, string operName)
 {
     sqlTemplatefile       = file;
     templateOperation     = oper;
     fileNameTemplate      = fname;
     operationNameTamplate = operName;
 }
Example #2
0
        public static void OperationDelete(DatabaseData dbs, string procNameTemplate, string procFileNameTemplate, bool returnAllData, string creator, string dateformat, bool questarSpecificDates, TableData.Operation currentOper, string temlateSQLScriptPath, string finalDir)
        {
            if (!Directory.Exists(finalDir + "\\" + currentOper.ToString().ToUpper()))
            {
                Directory.CreateDirectory(finalDir + "\\" + currentOper.ToString().ToUpper());
            }

            foreach (TableData tb in dbs.Tables)
            {
                FileInfo      file            = new FileInfo(temlateSQLScriptPath);
                StreamReader  SqlScriptReader = file.OpenText();
                StringBuilder deleteScript    = new StringBuilder();
                deleteScript.Append(SqlScriptReader.ReadToEnd());

                string procName     = procNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString());
                string procFileName = procFileNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString());
                deleteScript.Replace("!pr0cNam3!", procName);
                deleteScript.Replace("!cr3ationDAT3!", DateTime.Now.ToString(dateformat.Replace("/", "\\/")));
                deleteScript.Replace("!cr3ator!", creator);
                deleteScript.Replace("!Operati0n!", currentOper.ToString().ToUpper());
                deleteScript.Replace("!tblNAM3!", tb.TableName);

                #region TestedStrings
                StringBuilder testedStrings = tb.TestedStrings(returnAllData, tb, procName, questarSpecificDates, TableData.Operation.Delete, null);
                deleteScript.Replace("!T3sTStrings!", testedStrings.ToString());
                #endregion

                #region scriptParameters
                StringBuilder parameters = tb.ParameterStrings(returnAllData, tb, procName, questarSpecificDates, TableData.Operation.Delete, null);
                deleteScript.Replace("!param3t3rs!", parameters.ToString());
                #endregion

                #region scriptCode
                StringBuilder sqlScriptCode = new StringBuilder();
                sqlScriptCode.Append("                 DELETE \n");
                sqlScriptCode.Append("                   FROM [dbo].[" + tb.TableName + "] \n");
                sqlScriptCode.Append("                  WHERE [" + tb.PrimaryKey + "] = @" + tb.PrimaryKey + "; \n");
                sqlScriptCode.Append("                 SELECT @@ROWCOUNT AS [RowCount];");
                deleteScript.Replace("!pr0cC0d3!", sqlScriptCode.ToString());
                #endregion
                CreateNewFile(finalDir + @"\" + currentOper.ToString().ToUpper() + @"\" + procFileName + ".sql", deleteScript);
            }
        }
Example #3
0
        public static void OperationInsert(DatabaseData dbs, string procNameTemplate, string procFileNameTemplate, bool returnAllData, string creator, string dateformat, bool questarSpecificDates, TableData.Operation currentOper, string temlateSQLScriptPath, string finalDir)
        {
            if (!Directory.Exists(finalDir + "\\" + currentOper.ToString().ToUpper()))
            {
                Directory.CreateDirectory(finalDir + "\\" + currentOper.ToString().ToUpper());
            }

            foreach (TableData tb in dbs.Tables)
            {
                FileInfo      file            = new FileInfo(temlateSQLScriptPath);
                StreamReader  SqlScriptReader = file.OpenText();
                StringBuilder insertScript    = new StringBuilder();
                insertScript.Append(SqlScriptReader.ReadToEnd());
                string procName     = procNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString());
                string procFileName = procFileNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString());
                insertScript.Replace("!pr0cNam3!", procName);
                insertScript.Replace("!cr3ationDAT3!", DateTime.Now.ToString(dateformat.Replace("/", "\\/")));
                insertScript.Replace("!cr3ator!", creator);
                insertScript.Replace("!Operati0n!", currentOper.ToString());
                insertScript.Replace("!tblNAM3!", tb.TableName);

                #region TestedStrings
                StringBuilder testedStrings = tb.TestedStrings(returnAllData, tb, procName, questarSpecificDates, TableData.Operation.Insert, dbs.ManagedInsertColumns);
                insertScript.Replace("!T3sTStrings!", testedStrings.ToString());
                #endregion

                #region scriptParameters
                StringBuilder parameters = tb.ParameterStrings(returnAllData, tb, procName, questarSpecificDates, TableData.Operation.Insert, dbs.ManagedInsertColumns);
                insertScript.Replace("!param3t3rs!", parameters.ToString());
                #endregion

                #region scriptCode
                StringBuilder sqlScriptCode = tb.SqlScriptCodeStrings(returnAllData, tb, procName, questarSpecificDates, TableData.Operation.Insert, dbs.ManagedInsertColumns);
                insertScript.Replace("!pr0cC0d3!", sqlScriptCode.ToString());
                #endregion

                //save file for table
                CreateNewFile(finalDir + @"\" + currentOper.ToString().ToUpper() + @"\" + procFileName + ".sql", insertScript);
            }
        }
Example #4
0
        public static void OperationUniqueIndexFK(DatabaseData dbs, string procNameTemplate, string procFileNameTemplate, bool returnAllData, string creator, string dateformat, bool questarSpecificDates, TableData.Operation currentOper, string temlateSQLScriptPath, string finalDir)
        {
            if (!Directory.Exists(finalDir + @"\" + currentOper.ToString().ToUpper()))
            {
                Directory.CreateDirectory(finalDir + @"\" + currentOper.ToString().ToUpper());
            }

            foreach (TableData tb in dbs.Tables)
            {
                FileInfo      file            = new FileInfo(temlateSQLScriptPath);
                StreamReader  SqlScriptReader = file.OpenText();
                StringBuilder getAllScript    = new StringBuilder();
                getAllScript.Append(SqlScriptReader.ReadToEnd());
                string indexName    = procNameTemplate.Replace("!tblNAM3!", tb.TableName);
                string procFileName = procFileNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString());
                getAllScript.Replace("!cr3ationDAT3!", DateTime.Now.ToString(dateformat.Replace("/", "\\/")));
                getAllScript.Replace("!cr3ator!", creator);
                getAllScript.Replace("!tblNAM3!", tb.TableName);
                StringBuilder sqlScriptCode = new StringBuilder();
                sqlScriptCode.Append(
                    "\n CREATE UNIQUE NONCLUSTERED INDEX  [!idxN@me!] ON [dbo].[" + tb.TableName + "]                        "
                    + "\n ( ");
                bool firstAdded = false;
                foreach (ColumnData col in tb.Columns)
                {
                    if (col.isFK)
                    {
                        indexName    += "_" + col.ColumnName;
                        procFileName += "_" + col.ColumnName;
                        sqlScriptCode.Append("\n  " + (firstAdded == true ? "," : "") + "[" + col.ColumnName + "]                                                                                                   ");
                        firstAdded = true;
                    }
                }
                sqlScriptCode.Replace("!idxN@me!", indexName);
                sqlScriptCode.Append("\n ) " + "\n GO");
                getAllScript.Replace("!pr0cC0d3!", sqlScriptCode.ToString());
                CreateNewFile(finalDir + @"\" + currentOper.ToString().ToUpper() + @"\" + procFileName + ".sql", getAllScript);
            }
        }
Example #5
0
        public static void OperationNonClusteredIndexesFKAllTables(DatabaseData dbs, string procNameTemplate, string procFileNameTemplate, bool returnAllData, string creator, string dateformat, bool questarSpecificDates, TableData.Operation currentOper, string temlateSQLScriptPath, string finalDir)
        {
            if (!Directory.Exists(finalDir + @"\" + currentOper.ToString().ToUpper()))
            {
                Directory.CreateDirectory(finalDir + @"\" + currentOper.ToString().ToUpper());
            }

            foreach (TableData tb in dbs.Tables)
            {
                foreach (ColumnData col in tb.Columns)
                {
                    if (col.isFK)
                    {
                        FileInfo      file            = new FileInfo(temlateSQLScriptPath);
                        StreamReader  SqlScriptReader = file.OpenText();
                        StringBuilder getAllScript    = new StringBuilder();
                        getAllScript.Append(SqlScriptReader.ReadToEnd());

                        string indexName    = procNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!C0lumn!", col.ColumnName.ToString());
                        string procFileName = procFileNameTemplate.Replace("!tblNAM3!", tb.TableName).Replace("!Operati0n!", currentOper.ToString()).Replace("!C0lumn!", col.ColumnName.ToString());

                        getAllScript.Replace("!cr3ationDAT3!", DateTime.Now.ToString(dateformat.Replace("/", "\\/")));
                        getAllScript.Replace("!cr3ator!", creator);
                        getAllScript.Replace("!tblNAM3!", tb.TableName);

                        #region scriptCode
                        StringBuilder sqlScriptCode = new StringBuilder();
                        sqlScriptCode.Append(
                            "\n CREATE NONCLUSTERED INDEX [" + indexName + "] ON [dbo].[" + tb.TableName + "]                        "
                            + "\n (                                                                                                                              "
                            + "\n  [" + col.ColumnName + "]                                                                                                   "
                            + "\n ) "
                            + "\n GO"
                            );

                        getAllScript.Replace("!pr0cC0d3!", sqlScriptCode.ToString());
                        #endregion
                        CreateNewFile(finalDir + @"\" + currentOper.ToString().ToUpper() + @"\" + procFileName + ".sql", getAllScript);
                    }
                }
            }
        }
        /// <summary>
        /// Generates all procedures in the selected folder. Creates folder with DB name and sub folders with Operation Name
        private void ParseProcs(DatabaseData dbs, bool returnAllData, List <Operations> operations, string destinationDir, string creator, bool useSpecificDates)
        {
            string finalDir = destinationDir + "\\" + dbs.DatabaseName;

            // SQLFormater sqlFormat = new SQLFormater();
            //To do implement setting that uses the SQLFormater to format every file based on the format settings

            if (!Directory.Exists(finalDir))
            {
                Directory.CreateDirectory(finalDir);
            }

            foreach (Operations currentOperation in operations)
            {
                TableData.Operation oper    = currentOperation.templateOperation;
                string temlateSQLScriptPath = "";
                temlateSQLScriptPath = configurationSQLPath + currentOperation.sqlTemplatefile;

                switch (oper)
                {
                case TableData.Operation.Insert:
                    OperationsManage.OperationInsert(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.Update:
                    OperationsManage.OperationUpdate(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.Delete:
                    OperationsManage.OperationDelete(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.GetAll:
                    OperationsManage.OperationGetAll(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.GetByID:
                    OperationsManage.OperationGetByID(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.GetByFilter:
                    OperationsManage.OperationGetByFilter(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.GetByFK:
                    OperationsManage.OperationGetByFK(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.NonClusteredCoveringIndexesTables:
                    OperationsManage.OperationNonClusteredCoveringIndexesBridgeTables(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.NonClusteredIndexesFKAllTables:
                    OperationsManage.OperationNonClusteredIndexesFKAllTables(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.NonClusteredIndexesFKAllColumnsAllTables:
                    OperationsManage.OperationNonClusteredIndexesFKAllColumnsAllTables(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;

                case TableData.Operation.UniqueIndexFK:
                    OperationsManage.OperationUniqueIndexFK(dbs, currentOperation.operationNameTamplate, currentOperation.fileNameTemplate, returnAllData, creator, tbDateFormat.Text, useSpecificDates, currentOperation.templateOperation, temlateSQLScriptPath, finalDir);
                    break;
                }
            }
            MessageBox.Show("Procedures Generated!");
        }