@@ -17,7 +17,6 @@ public partial class FormModelMetadata : FormBase
1717 {
1818 FormAlert _alert ;
1919 private BindingSource bindingSourceTableMetadata = new BindingSource ( ) ;
20- private BindingSource bindingSourceMultiActiveMetadata = new BindingSource ( ) ;
2120
2221 public FormModelMetadata ( )
2322 {
@@ -87,9 +86,9 @@ private void PopulateTableGridWithVersion(int versionId)
8786 sqlStatementForLatestVersion . AppendLine ( " [TABLE_NAME]," ) ;
8887 sqlStatementForLatestVersion . AppendLine ( " [COLUMN_NAME]," ) ;
8988 sqlStatementForLatestVersion . AppendLine ( " [DATA_TYPE]," ) ;
90- sqlStatementForLatestVersion . AppendLine ( " [CHARACTER_MAXIMUM_LENGTH]," ) ;
91- sqlStatementForLatestVersion . AppendLine ( " [NUMERIC_PRECISION]," ) ;
92- sqlStatementForLatestVersion . AppendLine ( " [ORDINAL_POSITION]," ) ;
89+ sqlStatementForLatestVersion . AppendLine ( " CAST( [CHARACTER_MAXIMUM_LENGTH] AS VARCHAR(100)) AS CHARACTER_MAXIMUM_LENGTH ," ) ;
90+ sqlStatementForLatestVersion . AppendLine ( " CAST( [NUMERIC_PRECISION] AS VARCHAR(100)) AS NUMERIC_PRECISION ," ) ;
91+ sqlStatementForLatestVersion . AppendLine ( " CAST( [ORDINAL_POSITION] AS VARCHAR(100)) AS ORDINAL_POSITION ," ) ;
9392 sqlStatementForLatestVersion . AppendLine ( " [PRIMARY_KEY_INDICATOR]," ) ;
9493 sqlStatementForLatestVersion . AppendLine ( " [MULTI_ACTIVE_INDICATOR]" ) ;
9594 sqlStatementForLatestVersion . AppendLine ( "FROM [MD_VERSION_ATTRIBUTE]" ) ;
@@ -581,21 +580,18 @@ private void ReverseEngineerModelMetadata(SqlConnection conn, string prefix, str
581580 var dwhKeyIdentifier = configurationSettings . DwhKeyIdentifier ; //Indicates _HSH, _SK etc.
582581
583582 var keyIdentifierLocation = configurationSettings . KeyNamingLocation ;
584- ReverseEngineerMainDataGrid ( conn , prefix , databaseName , versionId , effectiveDateTimeAttribute , dwhKeyIdentifier , keyIdentifierLocation ) ;
585- }
583+ // ReverseEngineerMainDataGrid(conn, prefix, databaseName, versionId, effectiveDateTimeAttribute, dwhKeyIdentifier, keyIdentifierLocation);
586584
587- private SqlConnection ReverseEngineerMainDataGrid ( SqlConnection conn , string prefix , string databaseName , int versionId , string effectiveDateTimeAttribute , string dwhKeyIdentifier , string keyIdentifierLocation )
588- {
589585 //Create the attribute selection statement for the array
590586 var sqlStatementForAttributeVersion = new StringBuilder ( ) ;
591587
592588 sqlStatementForAttributeVersion . AppendLine ( "SELECT " ) ;
593589 sqlStatementForAttributeVersion . AppendLine ( " main.TABLE_NAME, " ) ;
594590 sqlStatementForAttributeVersion . AppendLine ( " main.COLUMN_NAME, " ) ;
595591 sqlStatementForAttributeVersion . AppendLine ( " main.DATA_TYPE, " ) ;
596- sqlStatementForAttributeVersion . AppendLine ( " COALESCE(main.CHARACTER_MAXIMUM_LENGTH,0) AS CHARACTER_MAXIMUM_LENGTH," ) ;
597- sqlStatementForAttributeVersion . AppendLine ( " COALESCE(main.NUMERIC_PRECISION,0) AS NUMERIC_PRECISION, " ) ;
598- sqlStatementForAttributeVersion . AppendLine ( " main.ORDINAL_POSITION, " ) ;
592+ sqlStatementForAttributeVersion . AppendLine ( " CAST( COALESCE(main.CHARACTER_MAXIMUM_LENGTH,0) AS VARCHAR(100) ) AS CHARACTER_MAXIMUM_LENGTH," ) ;
593+ sqlStatementForAttributeVersion . AppendLine ( " CAST( COALESCE(main.NUMERIC_PRECISION,0) AS VARCHAR(100) ) AS NUMERIC_PRECISION, " ) ;
594+ sqlStatementForAttributeVersion . AppendLine ( " CAST( main.ORDINAL_POSITION AS VARCHAR(100)) AS ORDINAL_POSITION, " ) ;
599595
600596 sqlStatementForAttributeVersion . AppendLine ( " CASE " ) ;
601597 sqlStatementForAttributeVersion . AppendLine ( " WHEN keysub.COLUMN_NAME IS NULL " ) ;
@@ -680,76 +676,8 @@ private SqlConnection ReverseEngineerMainDataGrid(SqlConnection conn, string pre
680676 row . SetAdded ( ) ;
681677 }
682678
683- return conn ;
684- }
685-
686-
687- private SqlConnection ReverseEngineerMultiActiveDataGrid ( SqlConnection conn , string prefix , string databaseName , string effectiveDateTimeAttribute , string dwhKeyIdentifier , string keyIdentifierLocation )
688- {
689- //Create the attribute selection statement for the array
690- var sqlStatementForAttributeVersion = new StringBuilder ( ) ;
691-
692- sqlStatementForAttributeVersion . AppendLine ( "SELECT " ) ;
693- sqlStatementForAttributeVersion . AppendLine ( " main.TABLE_NAME, " ) ;
694- sqlStatementForAttributeVersion . AppendLine ( " main.COLUMN_NAME, " ) ;
695- sqlStatementForAttributeVersion . AppendLine ( " main.DATA_TYPE, " ) ;
696- sqlStatementForAttributeVersion . AppendLine ( " COALESCE(main.CHARACTER_MAXIMUM_LENGTH,0) AS CHARACTER_MAXIMUM_LENGTH," ) ;
697- sqlStatementForAttributeVersion . AppendLine ( " COALESCE(main.NUMERIC_PRECISION,0) AS NUMERIC_PRECISION, " ) ;
698-
699- sqlStatementForAttributeVersion . AppendLine ( " CASE " ) ;
700- sqlStatementForAttributeVersion . AppendLine ( " WHEN ma.COLUMN_NAME IS NULL " ) ;
701- sqlStatementForAttributeVersion . AppendLine ( " THEN 'N' " ) ;
702- sqlStatementForAttributeVersion . AppendLine ( " ELSE 'Y' " ) ;
703- sqlStatementForAttributeVersion . AppendLine ( " END AS MULTI_ACTIVE_INDICATOR" ) ;
704-
705- sqlStatementForAttributeVersion . AppendLine ( "FROM [" + databaseName + "].INFORMATION_SCHEMA.COLUMNS main" ) ;
706-
707- //Multi-active
708- sqlStatementForAttributeVersion . AppendLine ( "-- Multi-Active" ) ;
709- sqlStatementForAttributeVersion . AppendLine ( "LEFT OUTER JOIN (" ) ;
710- sqlStatementForAttributeVersion . AppendLine ( " SELECT " ) ;
711- sqlStatementForAttributeVersion . AppendLine ( " sc.name AS TABLE_NAME," ) ;
712- sqlStatementForAttributeVersion . AppendLine ( " C.name AS COLUMN_NAME" ) ;
713- sqlStatementForAttributeVersion . AppendLine ( " FROM [" + databaseName + "].sys.index_columns A" ) ;
714- sqlStatementForAttributeVersion . AppendLine ( " JOIN [" + databaseName + "].sys.indexes B" ) ;
715- sqlStatementForAttributeVersion . AppendLine ( " ON A.object_id=B.object_id AND A.index_id=B.index_id" ) ;
716- sqlStatementForAttributeVersion . AppendLine ( " JOIN [" + databaseName + "].sys.columns C" ) ;
717- sqlStatementForAttributeVersion . AppendLine ( " ON A.column_id=C.column_id AND A.object_id=C.object_id" ) ;
718- sqlStatementForAttributeVersion . AppendLine ( " JOIN [" + databaseName + "].sys.tables sc on sc.object_id = A.object_id" ) ;
719- sqlStatementForAttributeVersion . AppendLine ( " WHERE is_primary_key=1" ) ;
720- sqlStatementForAttributeVersion . AppendLine ( " AND C.name NOT IN('" + effectiveDateTimeAttribute + "')" ) ;
721- if ( keyIdentifierLocation == "Prefix" )
722- {
723- sqlStatementForAttributeVersion . AppendLine ( " AND C.name NOT LIKE '" + dwhKeyIdentifier + "_%'" ) ;
724- }
725- else
726- {
727- sqlStatementForAttributeVersion . AppendLine ( " AND C.name NOT LIKE '%_" + dwhKeyIdentifier + "'" ) ;
728- }
729-
730- sqlStatementForAttributeVersion . AppendLine ( " ) ma" ) ;
731- sqlStatementForAttributeVersion . AppendLine ( " ON main.TABLE_NAME = ma.TABLE_NAME" ) ;
732- sqlStatementForAttributeVersion . AppendLine ( " AND main.COLUMN_NAME = ma.COLUMN_NAME" ) ;
733-
734- sqlStatementForAttributeVersion . AppendLine ( "WHERE main.TABLE_NAME LIKE '" + prefix + "_%'" ) ;
735-
736- sqlStatementForAttributeVersion . AppendLine ( "AND" ) ;
737- sqlStatementForAttributeVersion . AppendLine ( " (CASE" ) ;
738- sqlStatementForAttributeVersion . AppendLine ( " WHEN ma.COLUMN_NAME IS NULL THEN 'N'" ) ;
739- sqlStatementForAttributeVersion . AppendLine ( " ELSE 'Y'" ) ;
740- sqlStatementForAttributeVersion . AppendLine ( " END) = 'Y'" ) ;
741-
742- var reverseEngineerResults = GetDataTable ( ref conn , sqlStatementForAttributeVersion . ToString ( ) ) ;
743-
744- bindingSourceMultiActiveMetadata . DataSource = reverseEngineerResults ;
745-
746- foreach ( DataRow row in reverseEngineerResults . Rows ) //Flag as new row so it's detected by the save button
747- {
748- row . SetAdded ( ) ;
749- }
679+ }
750680
751- return conn ;
752- }
753681
754682 private void TruncateMetadata ( )
755683 {
@@ -3132,9 +3060,9 @@ private void SaveModelTableMetadata(int versionId, DataTable dataTableChanges)
31323060 {
31333061 insertQueryTables . AppendLine ( "UPDATE MD_VERSION_ATTRIBUTE" ) ;
31343062 insertQueryTables . AppendLine ( "SET " +
3135- "' [TABLE_NAME] = '" + dataType +
3136- "' [COLUMN_NAME] = '" + dataType +
3137- "' [DATA_TYPE] = '" + dataType +
3063+ " [TABLE_NAME] = '" + tableName +
3064+ "', [COLUMN_NAME] = '" + columnName +
3065+ "', [DATA_TYPE] = '" + dataType +
31383066 "',[CHARACTER_MAXIMUM_LENGTH] = '" + maxLength +
31393067 "',[NUMERIC_PRECISION] = '" + numericPrecision +
31403068 "',[ORDINAL_POSITION] = '" + ordinalPosition +
@@ -3188,53 +3116,53 @@ private void SaveModelTableMetadata(int versionId, DataTable dataTableChanges)
31883116 // Insert new rows
31893117 if ( ( row . RowState & DataRowState . Added ) != 0 )
31903118 {
3191- var tableName = "" ;
3192- var columnName = "" ;
3193- var dataType = "" ;
3194- var maxLength = "0" ;
3195- var numericPrecision = "0" ;
3196- var ordinalPosition = "0" ;
3197- var primaryKeyIndicator = "" ;
3198- var multiActiveIndicator = "" ;
3119+ string tableName = "" ;
3120+ string columnName = "" ;
3121+ string dataType = "" ;
3122+ string maxLength = "0" ;
3123+ string numericPrecision = "0" ;
3124+ string ordinalPosition = "0" ;
3125+ string primaryKeyIndicator = "" ;
3126+ string multiActiveIndicator = "" ;
3127+
3128+ if ( row [ 0 ] != DBNull . Value )
3129+ {
3130+ tableName = ( string ) row [ 0 ] ;
3131+ }
3132+
3133+ if ( row [ 1 ] != DBNull . Value )
3134+ {
3135+ columnName = ( string ) row [ 1 ] ;
3136+ }
31993137
32003138 if ( row [ 2 ] != DBNull . Value )
32013139 {
3202- tableName = ( string ) row [ 2 ] ;
3140+ dataType = ( string ) row [ 2 ] ;
32033141 }
32043142
32053143 if ( row [ 3 ] != DBNull . Value )
32063144 {
3207- columnName = ( string ) row [ 3 ] ;
3145+ maxLength = ( string ) row [ 3 ] ;
32083146 }
32093147
32103148 if ( row [ 4 ] != DBNull . Value )
32113149 {
3212- dataType = ( string ) row [ 4 ] ;
3150+ numericPrecision = ( string ) row [ 4 ] ;
32133151 }
32143152
32153153 if ( row [ 5 ] != DBNull . Value )
32163154 {
3217- maxLength = ( string ) row [ 5 ] ;
3155+ ordinalPosition = ( string ) row [ 5 ] ;
32183156 }
32193157
32203158 if ( row [ 6 ] != DBNull . Value )
32213159 {
3222- numericPrecision = ( string ) row [ 6 ] ;
3160+ primaryKeyIndicator = ( string ) row [ 6 ] ;
32233161 }
32243162
32253163 if ( row [ 7 ] != DBNull . Value )
32263164 {
3227- ordinalPosition = ( string ) row [ 7 ] ;
3228- }
3229-
3230- if ( row [ 8 ] != DBNull . Value )
3231- {
3232- primaryKeyIndicator = ( string ) row [ 8 ] ;
3233- }
3234-
3235- if ( row [ 9 ] != DBNull . Value )
3236- {
3237- multiActiveIndicator = ( string ) row [ 9 ] ;
3165+ multiActiveIndicator = ( string ) row [ 7 ] ;
32383166 }
32393167
32403168 if ( repositoryTarget == "SQLServer" )
0 commit comments