61 lines
2.5 KiB
C#
61 lines
2.5 KiB
C#
using DbTools;
|
|
using System.Data.SQLite;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DbToolsTester.Forms {
|
|
public partial class MainForm : DevExpress.XtraEditors.XtraForm {
|
|
public string DatabaseName { get; set; }
|
|
public string Database1File { get; set; }
|
|
public string Database2File { get; set; }
|
|
|
|
public MainForm() {
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void XtraTabControl1_CustomHeaderButtonClick(object sender, DevExpress.XtraTab.ViewInfo.CustomHeaderButtonEventArgs e) {
|
|
string tag = e.Button.Tag?.ToString();
|
|
if (tag == "open") {
|
|
Database1File = getDatabaseFile("Select Original / Production Database...");
|
|
Database2File = getDatabaseFile("Select Template / New Schema Database...");
|
|
|
|
DatabaseName = Path.GetFileNameWithoutExtension(Database1File);
|
|
Text += " [ Production DB = " + Path.GetFileName(Database1File) + "; Schema DB = " + Path.GetFileName(Database2File) + " ]";
|
|
} else if (tag == "clear") {
|
|
Database1File = null;
|
|
Database2File = null;
|
|
|
|
db1Sql.Clear();
|
|
db2Sql.Clear();
|
|
deltaSql.Clear();
|
|
|
|
Text = "DbSync Tester";
|
|
}
|
|
}
|
|
|
|
private string getDatabaseFile(string title = "Select Database File...") {
|
|
OpenFileDialog dlg = new OpenFileDialog() {
|
|
Filter = "Database Files (*.sql;*.sqlite;*.db)|*.sql;*.sqlite;*.db|SQL Files (*.sql)|*.sql|Sqlite Files (*.sqlite;*.db)|*.sqlite;*.db|Text Files (*.txt)|*.txt|All Files (*.*)|*.*",
|
|
CheckFileExists = true,
|
|
Multiselect = false,
|
|
Title = title
|
|
};
|
|
if (dlg.ShowDialog() == DialogResult.OK) {
|
|
return dlg.FileName;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private void ToolbarItemClicked(object sender, DevExpress.XtraBars.ItemClickEventArgs e) {
|
|
if (e.Item.Equals(bbiDelta)) {
|
|
SQLiteConnection db1 = new SQLiteConnection("Data Source=" + Database1File + ";Version=3;");
|
|
SQLiteConnection db2 = new SQLiteConnection("Data Source=" + Database2File + ";Version=3;");
|
|
|
|
Delta delta = new Delta();
|
|
deltaSql.Text = delta.BuildDelta(db1, db2, true, true);
|
|
db1Sql.Text = delta.Db1Sql;
|
|
db2Sql.Text = delta.Db2Sql;
|
|
}
|
|
}
|
|
}
|
|
} |