Ejemplo n.º 1
0
        private static void InsertMainProcedures(TDataDefinitionStore AStore,
            TTable ACurrentTable,
            ProcessTemplate ATemplate,
            ProcessTemplate ASnippet)
        {
            ASnippet.SetCodelet("TABLENAME", TTable.NiceTableName(ACurrentTable.strName));
            ASnippet.SetCodeletComment("TABLE_DESCRIPTION", ACurrentTable.strDescription);
            ASnippet.SetCodelet("SQLTABLENAME", ACurrentTable.strName);
            ASnippet.SetCodelet("VIAOTHERTABLE", "");
            ASnippet.SetCodelet("VIALINKTABLE", "");

            string formalParametersPrimaryKey;
            string actualParametersPrimaryKey;
            string actualParametersPrimaryKeyToString;
            int numberPrimaryKeyColumns;

            PrepareCodeletsPrimaryKey(ACurrentTable,
                out formalParametersPrimaryKey,
                out actualParametersPrimaryKey,
                out actualParametersPrimaryKeyToString,
                out numberPrimaryKeyColumns);

            ASnippet.SetCodelet("FORMALPARAMETERSPRIMARYKEY", formalParametersPrimaryKey);
            ASnippet.SetCodelet("ACTUALPARAMETERSPRIMARYKEY", actualParametersPrimaryKey);
            ASnippet.SetCodelet("ACTUALPARAMETERSPRIMARYKEYTOSTRING", actualParametersPrimaryKeyToString);
            ASnippet.SetCodelet("PRIMARYKEYNUMBERCOLUMNS", numberPrimaryKeyColumns.ToString());

            string formalParametersUniqueKey;
            string actualParametersUniqueKey;
            int numberUniqueKeyColumns;

            PrepareCodeletsUniqueKey(ACurrentTable,
                out formalParametersUniqueKey,
                out actualParametersUniqueKey,
                out numberUniqueKeyColumns);

            ASnippet.SetCodelet("FORMALPARAMETERSUNIQUEKEY", formalParametersUniqueKey);
            ASnippet.SetCodelet("ACTUALPARAMETERSUNIQUEKEY", actualParametersUniqueKey);
            ASnippet.SetCodelet("UNIQUEKEYNUMBERCOLUMNS", numberUniqueKeyColumns.ToString());


            ASnippet.SetCodelet("SEQUENCENAMEANDFIELD", "");

            foreach (TTableField tablefield in ACurrentTable.grpTableField)
            {
                // is there a field filled by a sequence?
                // yes: get the next value of that sequence and assign to row
                if (tablefield.strSequence.Length > 0)
                {
                    ASnippet.SetCodelet("SEQUENCENAMEANDFIELD", ", \"" + tablefield.strSequence + "\", \"" + tablefield.strName + "\"");

                    // assume only one sequence per table
                    break;
                }
            }
        }