procedure TForm2.btnExtractClick(Sender: TObject); begin memLog.Clear(); memResult.Clear(); DBStructure1.Objs.MSSQLServerOptions.Assign(DBComparer1.MSSQLServerOptions); DBStructure2.Objs.MSSQLServerOptions.Assign(DBComparer1.MSSQLServerOptions); DBCConnectionADO1.Connected := True; DBCConnectionADO2.Connected := True; try DBStructure1.Clear(); memLog.Lines.Add('Open ' + edtMasterDatabaseName.Text + ' DataBase'); MSSQLDBExtract1.ExtractDatabase(); DBStructure1.Metadata.ExtractMetadata(memResult.Lines); DBStructure2.Clear(); memLog.Lines.Add('Open ' + edtTargetDatabaseName.Text + ' DataBase'); MSSQLDBExtract2.ExtractDatabase(); DBStructure2.Metadata.ExtractMetadata(memResult.Lines); finally DBCConnectionADO2.Connected := False; DBCConnectionADO1.Connected := False; end; memLog.Lines.Add('<Extract Finished.>') end; procedure TForm2.btnCompareClick(Sender: TObject); begin memResult.Clear(); DBComparer1.CompareDatabases; memResult.Lines.BeginUpdate; DBComparer1.SQLExec.GetScript(memResult.Lines); memResult.Lines.EndUpdate; memLog.Lines.Add('<Comparing finished.>'); end; procedure TForm2.btnUpdateClick(Sender: TObject); begin MSSQLExec1.ExecuteScript(); end;
function AdoConnectString(WinAuth: Boolean; HostName, DbName, UserName, Password: String): String; begin Result := 'Provider=SQLOLEDB;' + 'Initial Catalog='+DbName+';'; if HostName <> '' then Result := Result + 'Data Source='+HostName+';'; if WinAuth then begin Result := Result + 'Integrated Security=SSPI;' + 'Persist Security Info=False;'; end else begin Result := Result + 'Persist Security Info=True;'; if UserName <> '' then Result := Result + 'User ID=' + UserName + ';'; if Password <> '' then Result := Result + 'Password=' + Password + ';'; end; end;
procedure TForm2.DBCConnectionADO1BeforeConnect(Sender: TObject); begin ADOConnection1.ConnectionString := AdoConnectString(cbAuthM.Checked, edtMasterServer.Text, edtMasterDatabaseName.Text, edtMasterUser.Text, edtMasterPassword.Text); DBStructure1.Objs.MSSQLServerOptions.SQLServerVersion := TMSSQLServerVersionType(cbSqlServerVersion.Items.Objects[cbSqlServerVersion.ItemIndex]); end; procedure TForm2.DBCConnectionADO2BeforeConnect(Sender: TObject); begin ADOConnection2.ConnectionString := AdoConnectString(cbAuthT.Checked, edtTargetServer.Text, edtTargetDatabaseName.Text, edtTargetUser.Text, edtTargetPassword.Text); DBStructure2.Objs.MSSQLServerOptions.SQLServerVersion := TMSSQLServerVersionType(cbSqlServerVersion.Items.Objects[cbSqlServerVersion.ItemIndex]); end; procedure TForm2.FormCreate(Sender: TObject); begin cbSqlServerVersion.Items.Clear(); cbSqlServerVersion.Items.AddObject('MSSQL 2000', TObject(st_MSSQL2000)); cbSqlServerVersion.Items.AddObject('MSSQL 2005', TObject(st_MSSQL2005)); cbSqlServerVersion.Items.AddObject('MSSQL 2008', TObject(st_MSSQL2008)); cbSqlServerVersion.Items.AddObject('MSSQL 2012', TObject(st_MSSQL2012)); cbSqlServerVersion.Items.AddObject('MSSQL 2014', TObject(st_MSSQL2014)); cbSqlServerVersion.Items.AddObject('MSSQL 2016', TObject(st_MSSQL2016)); cbSqlServerVersion.Items.AddObject('MSSQL 2017', TObject(st_MSSQL2017)); cbSqlServerVersion.ItemIndex := cbSqlServerVersion.Items.Count - 2; end; procedure TForm2.AddErrorMessage(Sender: TObject; ErrText: string); begin memLog.Lines.Add(ErrText); memLog.Perform(EM_SCROLLCARET, 0, 0); end;
Trouble logging in? Simply enter your email address OR username in order to reset your password.
For faster and more reliable delivery, add admin@clevercomponents.com to your trusted senders list in your email software.