public void ExecuteInstructions(Table source, Table dest) { TableComparator tc = new TableComparator(); /* * if(Preferences.JobAtual.DDLEnabled){ * VerifyTable(dest.TableName, source); * } */ List <TableRow> modifiedRows = tc.SearchForObjectDifferences(source, dest); ExecuteSyncIntoTable(modifiedRows, dest); if (source.TableInfo.EnableIdentitySync) { SyncIndetidy(source.TableInfo, dest.TableInfo); } }
public TableDiff compareRemoteAndLocal(string server1, string dbname1, string username1, string password1, string server2, string dbname2) { // Logger logger.Info("[ compareRemoteAndLocal ] - database1 : " + server1 + " , " + dbname1 + " , " + username1 + " , " + password1 + " ; database2 : " + server2 + " , " + dbname2 + ";"); DateTime start = DateTime.Now; logger.Info("[ compareRemoteAndLocal ] - start time : " + start.ToString()); // Init the basic info about response body TableDiff rtn = new TableDiff(); rtn.code = ResponseCode.SUCCESS; rtn.msg = "Succecssful"; if (server1 == null || dbname1 == null || username1 == null || password1 == null || server2 == null || dbname2 == null || server1.Trim() == "" || dbname1.Trim() == "" || username1.Trim() == "" || password1.Trim() == "" || server2.Trim() == "" || dbname2.Trim() == "") { rtn.code = ResponseCode.INPUT_ERROR; rtn.msg = "Null inputs are not be allowed!"; return(rtn); } // Connect to database SqlConnection conn1 = SqlServer.createConnectionRemote(server1, dbname1, username1, password1); SqlConnection conn2 = SqlServer.createConnectionLocal(server2, dbname2); if (conn1 == null || conn2 == null) { rtn.code = ResponseCode.DB_NOT_FUND; rtn.msg = "Database not found"; // close the database connection if (conn1 != null) { conn1.Close(); } if (conn2 != null) { conn2.Close(); } return(rtn); } // Compare the tables between two databases TableComparator tbCompare = new TableComparator(); rtn.tables = tbCompare.compareTables(conn1, conn2); // Compare the stored procedures between two databases StoredProcedureComparator pc = new StoredProcedureComparator(); rtn.storedProcedures = pc.compareStoredProcedure(conn1, conn2); // Compare the functions between two databases FunctionComparator fc = new FunctionComparator(); rtn.functions = fc.compareFunctions(conn1, conn2); // close the database connection conn1.Close(); conn2.Close(); // Logger DateTime end = DateTime.Now; logger.Info("[ compareRemoteAndLocal ] - end time : " + end.ToString() + " ; spend time : " + (end - start).ToString() + "\n"); return(rtn); }