1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo giữa kỳ CSDL phân tán

34 405 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 707,87 KB

Nội dung

Báo cáo kỳ CSDL Phân Tán I GIỚI THIỆU CSDL SIEUTHI(MAST, TENST, DIACHI, KHUVUC, TAISAN,SDT) MATHANG(MAMH,KHUVUC, TENMH,LOAI,SL,GIA) Các quan hệ phân mảnh sau: SIEUTHI_1(MAST, TENST, DIACHI, SDT, KHUVUC) chứa thông tin chi nhánh phía NAM SIEUTHI_2(MAST, TENST, DIACHI, SDT, KHUVUC) chứa thông tin chi nhánh nơi khác SIEUTHI_3(MAST,TAISAN) chứa thông tin chi nhánh TAISAN>20 tỷ SIEUTHI_4(MAST,TAISAN) chứa thông tin chi nhánh TAISAN 100 MATHANG_4(MAMH,KHUVUC,SL) chứa mặt hàng có số lượng < 100 Cây Phân Tán Báo cáo kỳ CSDL Phân Tán Báo cáo kỳ CSDL Phân Tán Từ Điển Dữ Liệu Bảng ViTu Chứa thông tin vị từ phân mảnh thuộc tính IsTRUE trả mảnh thoả điều kiện, thuộc tính IsFALSE trả mảnh không thoả điều kiện Bảng DinhVi Lấy thông tin site chứa mảnh Phần mềm sử dụng bảng để xem mảnh xét thuộc site Từ định đưa câu truy vấn site Bảng Fields Lấy thông tin trường, khoá mảnh Phần mềm dung bảng để xem xét mảnh chứa trường khoá Từ thực truy vấn liệu mảnh Bảng Toantu Chứa thông tin phép toán.(chính phủ định nó) Dữ liệu site1 Báo cáo kỳ CSDL Phân Tán Trên site1 Lưu trữ quản lý thông tin siêu thị có tài sản hớn 20 tỷ siêu thị thuộc khu vực phía NAM Lưu trữ quản lý mặt hàng có số lượng >100 Dữ liệu site2 Báo cáo kỳ CSDL Phân Tán Trên site1 Lưu trữ quản lý thông tin siêu thị có tài sản nhỏ 20 tỷ siêu thị không thuộc khu vực phía NAM Lưu trữ quản lý mặt hàng có số lượng = 0) { DataRow dtr = tb.Rows[0]; return dtr["SITE"].ToString().Trim(); } } Báo cáo kỳ CSDL Phân Tán } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return ""; //Lay cac truong cua bang public int exequery(string query) { int n = 0; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); SqlCommand cmd = new SqlCommand(query, cnn); n = cmd.ExecuteNonQuery(); } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return n; } public string field(string Tablename) { SqlDataAdapter sda; DataTable tb; DataRow dtr; int n = -1; string select = @"Select FIELD from Fields where MANH='" + Tablename + "' AND ISPRIMARY != '1'"; try { string s = ""; if (cnn.State == ConnectionState.Closed) cnn.Open(); sda = new SqlDataAdapter(select, cnn); tb = new DataTable(); sda.Fill(tb); n = tb.Rows.Count; if (n > 0) { for (int i = 0; i < n; i++) { dtr = tb.Rows[i]; s += Tablename + "." + dtr["FIELD"].ToString().Trim() + " "; if (i < n - 1) s += ","; } Báo cáo kỳ CSDL Phân Tán } return s; } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return null; } public int numberField(string Tablename) { SqlDataAdapter sda; DataTable tb; int n = 0; string select = @"Select FIELD from Fields where MANH='" + Tablename + "'"; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); sda = new SqlDataAdapter(select, cnn); tb = new DataTable(); sda.Fill(tb); n = tb.Rows.Count; } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return n; } public string primaryKey(string Tablename) { SqlDataAdapter sda; DataTable tb; DataRow dtr; int n = -1; string select = @"Select FIELD from Fields where MANH='" + Tablename + "'" + " AND ISPRIMARY='1'"; try { string s = ""; if (cnn.State == ConnectionState.Closed) cnn.Open(); sda = new SqlDataAdapter(select, cnn); tb = new DataTable(); sda.Fill(tb); Báo cáo kỳ CSDL Phân Tán n = tb.Rows.Count; if (n > 0) { dtr = tb.Rows[0]; s = dtr["FIELD"].ToString(); return s; } } } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return ""; public string[] TableOfField(string field) { SqlDataAdapter sda; DataTable tb; DataRow dtr; int n = -1; string select = @"Select TENBANG from Table_Field where TENTRUONG='" + field + "'"; try { string[] s; if (cnn.State == ConnectionState.Closed) cnn.Open(); sda = new SqlDataAdapter(select, cnn); tb = new DataTable(); sda.Fill(tb); n = tb.Rows.Count; if (n > 0) { s = new string[n]; for (int i = 0; i < n; i++) { dtr = tb.Rows[i]; s[i] = dtr["TENBANG"].ToString().Trim(); } return s; } } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return null; } public DataTable ALLManh() { DataTable tb = new DataTable(); Báo cáo kỳ CSDL Phân Tán } string select = "Select * from Vitu"; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); SqlDataAdapter sda = new SqlDataAdapter(select, cnn); sda.Fill(tb); } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return tb; public string IsToantu(string tentt) { String select = "Select pheptoan from ToanTu Where Tentt='" + tentt + "'"; DataTable tb = new DataTable(); DataRow dtr; string pheptoan = ""; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); SqlDataAdapter sda = new SqlDataAdapter(select, cnn); sda.Fill(tb); if (tb.Rows.Count > 0) { dtr = tb.Rows[0]; pheptoan = dtr["pheptoan"].ToString().Trim(); } } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return pheptoan; } public string IsNotToantu(string tentt) { String select = "Select isNot from ToanTu Where Tentt='" + tentt + "'"; DataTable tb = new DataTable(); DataRow dtr; string pheptoan = ""; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); SqlDataAdapter sda = new SqlDataAdapter(select, cnn); Báo cáo kỳ CSDL Phân Tán private void btnUpdate_Click(object sender, EventArgs e) { DataDictionary datadictionary = new DataDictionary(); ExecuteQuery executequery = new ExecuteQuery(); DataTable dtt = new DataTable(); DataRow dtr; toantu); string manhKV = "", manhTS = "", siteKV = "", siteTS = ""; string giatri, toantu; bool test; string insert = "", update = "", delete = ""; //doc vi tu dinh tinh tai san dtt = datadictionary.returnTT_GT("TAISAN"); int n = dtt.Rows.Count; if (n >= 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test = sosanh(txtTaisan.Text.Trim(), giatri, toantu); //lay manh chua gia tri can tim if (test == true) { manhTS = dtr["IsTRUE"].ToString().Trim(); } else { manhTS = dtr["IsFALSE"].ToString().Trim(); } siteTS = datadictionary.returnsite(manhTS); } //doc vi tu dinh tinh khu vuc dtt.Clear(); dtt = datadictionary.returnTT_GT("KHUVUC"); n = dtt.Rows.Count; if (n >= 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test = sosanh(txtKhuvuc.Text.Trim().ToUpper(), giatri, //lay manh chua gia tri can tim if (test == true) { manhKV = dtr["IsTRUE"].ToString().Trim(); } else { manhKV = dtr["IsFALSE"].ToString().Trim(); } siteKV = datadictionary.returnsite(manhKV); } //Update if (taisan == txtTaisan.Text && khuvuc == txtKhuvuc.Text) { update = "Update " + manhKV + " set tenst='" + txtTenst.Text + "', diachi='" + txtDiachi.Text + "', sdt='" + txtSodt.Text + "', khuvuc='" + txtKhuvuc.Text.ToUpper() + "' where Mast='" + mast + "'"; int i = executequery.Executenonquery(update, siteKV); Báo cáo kỳ CSDL Phân Tán if (i > 0) { update = "update " + manhTS + " set Taisan='" + Convert.ToInt32(txtTaisan.Text.Trim()) + "' where Mast='" + mast + "'"; i = executequery.Executenonquery(update, siteKV); } if (i > 0) MessageBox.Show("Update xong"); else MessageBox.Show("Update Fail "); } else { if (taisan != txtTaisan.Text) { insert = "Insert into " + manhTS + " Values('" + mast + "','" + Convert.ToInt32(txtTaisan.Text.Trim()) + "')"; delete = "Delete " + datadictionary.TooBang(manhTS) + " where Mast='" + mast + "'"; int i = executequery.Executenonquery(insert, siteTS); if (i > 0) i = executequery.Executenonquery(delete, datadictionary.TooSite(siteTS)); if (i > 0) MessageBox.Show("Update xong"); else MessageBox.Show("Update Fail "); } if (khuvuc != txtKhuvuc.Text) { insert = "Insert into " + manhKV + " Values('" + mast + "','" + tenst + "','" + diachi + "','" + sodt + "','" + txtKhuvuc.Text.Trim().ToUpper() + "')"; delete = "Delete " + datadictionary.TooBang(manhKV) + " where Mast='" + mast + "'"; int i = executequery.Executenonquery(insert, siteKV); if (i > 0) i = executequery.Executenonquery(delete, datadictionary.TooSite(siteKV)); if (i > 0) MessageBox.Show("Update xong"); else MessageBox.Show("Update Fail "); } } } Demo: Chuyển ST001 siêu thị site sang site Báo cáo kỳ CSDL Phân Tán Dữ liệu sau update Báo cáo kỳ CSDL Phân Tán Chức Năng Thêm Mới Siêu Thị Code private void tbn_AddSm_Click(object sender, EventArgs e) { if (testInfo() == true) { ExecuteQuery executequery = new ExecuteQuery(); DataDictionary datadictionary = new DataDictionary(); Báo cáo kỳ CSDL Phân Tán string string string string string string ten = txttenst.Text.Trim(); ma = txtmast.Text.Trim(); diachi = txtdiachi.Text.Trim(); khuvuc = txtkhuvuc.Text.Trim().ToUpper(); taisan = txttaisan.Text.Trim(); sdt = txtsodt.Text.Trim(); string toantu, giatri, site, insert; DataRow dtr; //xu ly tren nhanh bool test; string manh; DataTable dtt = new DataTable(); dtt = datadictionary.returnTT_GT("KHUVUC"); int n = dtt.Rows.Count; if (n >= 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test = datadictionary.sosanh(khuvuc, giatri, toantu); //lay manh chua gia tri can tim if (test == true) { manh = dtr["IsTRUE"].ToString().Trim(); } else { manh = dtr["IsFALSE"].ToString().Trim(); } site = datadictionary.returnsite(manh); insert = "Insert into " + manh + " values('" + ma + "','" + ten + "','" + diachi + "','" + sdt + "','" + khuvuc + "')"; int i = executequery.Executenonquery(insert, site); if (i = 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test = datadictionary.sosanh(taisan, giatri, toantu); //lay manh chua gia tri can tim if (test == true) { manh = dtr["IsTRUE"].ToString().Trim(); } else { Báo cáo kỳ CSDL Phân Tán manh = dtr["IsFALSE"].ToString().Trim(); } site = datadictionary.returnsite(manh); insert = "Insert into " + manh + " values('" + ma + "','" + taisan + "')"; int i = executequery.Executenonquery(insert, site); if (i = 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test =datadictionary.sosanh(soluong, giatri, toantu); //TIM NOI CHUA VI TU TIM KIEM if (test == true) { manhSL = dtr["IsTRUE"].ToString().Trim(); } else { manhSL = dtr["IsFALSE"].ToString().Trim(); } //tim site siteSL = datadictionary.returnsite(manhSL); //bat dau tim kiem select = "select " + manhSL + ".MAMH, TENMH,LOAI,GIA,KHUVUC,SL from " + manhSL + " inner join MATHANG on " + manhSL + ".mamh=mathang.mamh where sl>='" + Convert.ToInt32(txtsoluong.Text.Trim()) + "'"; TABLE1 = exequery.Execute(select, siteSL); //Kiểm tra site lại thoã giá trị tìm kiếm test = datadictionary.sosanh(giatri, soluong, toantu); if (test == true) { manhSL = dtr["IsTRUE"].ToString().Trim(); //bat dau tim kiem siteSL = datadictionary.returnsite(manhSL); select = "select " + manhSL + ".MAMH, TENMH,LOAI,GIA,KHUVUC,SL from " + manhSL + " inner join MATHANG on " + manhSL + ".mamh=mathang.mamh where sl>='" + Convert.ToInt32(txtsoluong.Text.Trim()) + "'"; TABLE2 = exequery.Execute(select, siteSL); } TABLE.Merge(TABLE1); TABLE.Merge(TABLE2); dataGvMathang.DataSource = TABLE; } } } Demo Tìm kiếm mặt hàng có số lượng > 500 Báo cáo kỳ CSDL Phân Tán Chức thay đổi thông tin mặt hàng Code private void btnUpdateMH_Click(object sender, EventArgs e) Báo cáo kỳ CSDL Phân Tán { DataTable dtt = new DataTable(); DataDictionary datadictionary = new DataDictionary(); ExecuteQuery executequery = new ExecuteQuery(); string siteOld = "", siteNew = "", manhNew = "", manhOld = "", insert = "", delete = ""; if (txtSoluong.Text.Trim() != Soluong) { manhOld = datadictionary.ThuocManh("SL", Soluong); manhNew = datadictionary.ThuocManh("SL", txtSoluong.Text.Trim()); } if (manhNew != manhOld) { siteOld = datadictionary.returnsite(manhOld); siteNew = datadictionary.returnsite(manhNew); insert = "Insert into " + manhNew + " values('" + txtMaMH.Text.Trim() + "','" + txtKhuvuc.Text.Trim() + "','" + txtSoluong.Text.Trim() + "')"; delete = "delete " + manhOld + " where MAMH='" + txtMaMH.Text.Trim() + "'"; int i = executequery.Executenonquery(insert, siteNew); if (i > 0) i = executequery.Executenonquery(delete, siteOld); if (i > 0) MessageBox.Show("Thành công !!!"); else MessageBox.Show("Fail !!!"); } Demo Báo cáo kỳ CSDL Phân Tán Kết Chức năng: Quản Lý Từ Điển Dữ Liệu Code: public partial class Frm_CapnhatDD : Form { public Frm_CapnhatDD() { InitializeComponent(); } public string tentruong = "", phepss = "", giatri = "", istrue = "", isfalse = ""; private void load() { txtTentruong.Text = tentruong; comboPheptoan.Text = phepss; txtGiatri.Text = giatri; txtIsTrue.Text = istrue; txtIsFalse.Text = isfalse; } DataDictionary datadictionary = new DataDictionary(); ExecuteQuery executequery = new ExecuteQuery(); private void addcombobox() { Báo cáo kỳ CSDL Phân Tán DataTable dtt = new DataTable(); dtt = datadictionary.AllToantu(); if (dtt.Rows.Count > 0) { for(int i=0;i 0) { for (int i = 0; i < n; i++) { Insert = "Insert into " + IsFalseNew + " values("; dtr = dttTrue.Rows[i]; for (int j = 0; j < numberFalse; j++) { value += "'" + dtr[j].ToString().Trim() + "'"; if (j != numberFalse-1) value += ", "; } Insert += value + ")"; Delete = "Delete " + IsTrueNew + " where " + priTrue.Trim() + "= '" + dtr[0].ToString().Trim() + "'"; value = ""; int kt = executequery.Executenonquery(Insert, siteFalse); if (kt > 0) executequery.Executenonquery(Delete, siteTrue); else { MessageBox.Show("Values1 Fail!!!"); return; } } } // if (m > 0) { for (int i = 0; i < m; i++) { Insert = "Insert into " + IsTrueNew + " values("; dtr = dttFalse.Rows[i]; for (int j = 0; j < numberTrue; j++) { value += "'" + dtr[j].ToString().Trim() + "'"; if (j != numberTrue-1) value += ", "; } Insert += value + ")"; Delete = "Delete " + IsFalseNew + " where " + priFalse.Trim() + "= '" + dtr[0].ToString().Trim() + "'"; value = ""; Báo cáo kỳ CSDL Phân Tán int kt = executequery.Executenonquery(Insert, siteTrue); if (kt > 0) executequery.Executenonquery(Delete, siteFalse); else { } MessageBox.Show("Values2 Fail!!!"); return; } } MessageBox.Show("Update xong"); } } Demo: Sieuthi_1 khu vực phía nam, sieuthi_2 lại Ta thực Update Sieuthi_1 khác phía bắc, sieuthi_2 lại Update Báo cáo kỳ CSDL Phân Tán [...]... Chuyển ST001 siêu thị site 1 sang site 2 Báo cáo giữa kỳ CSDL Phân Tán Dữ liệu sau khi update Báo cáo giữa kỳ CSDL Phân Tán 3 Chức Năng Thêm Mới Siêu Thị Code private void tbn_AddSm_Click(object sender, EventArgs e) { if (testInfo() == true) { ExecuteQuery executequery = new ExecuteQuery(); DataDictionary datadictionary = new DataDictionary(); Báo cáo giữa kỳ CSDL Phân Tán string string string string string... manhTS + " where TAISAN >= '" + taisan + "'"; dttmanhTS = exequery.Execute(select, siteTS); dataGvSieuthi.DataSource = dttmanhTS; } } } Demo: 2)Chức năng thay đổi tt siêu thị Báo cáo giữa kỳ CSDL Phân Tán Code: Báo cáo giữa kỳ CSDL Phân Tán private void btnUpdate_Click(object sender, EventArgs e) { DataDictionary datadictionary = new DataDictionary(); ExecuteQuery executequery = new ExecuteQuery(); DataTable... cnn1); Báo cáo giữa kỳ CSDL Phân Tán n = cmd.ExecuteNonQuery(); } catch (SqlException sqlex) { sqlex.ToString(); } finally { cnn1.Close(); } } else { try { cnn2.Open(); cmd = new SqlCommand(bolenh, cnn2); n = cmd.ExecuteNonQuery(); } catch (SqlException sqlex) { sqlex.ToString(); } finally { cnn2.Close(); } } return n; } } III SƠ ĐỒ CHỨC NĂNG 1)Chức năng tra cứu tt siêu thị Báo cáo giữa kỳ CSDL Phân Tán. .. TABLE.Merge(TABLE1); TABLE.Merge(TABLE2); dataGvMathang.DataSource = TABLE; } } } Demo Tìm kiếm những mặt hàng có số lượng > 500 Báo cáo giữa kỳ CSDL Phân Tán 5 Chức năng thay đổi thông tin mặt hàng Code private void btnUpdateMH_Click(object sender, EventArgs e) Báo cáo giữa kỳ CSDL Phân Tán { DataTable dtt = new DataTable(); DataDictionary datadictionary = new DataDictionary(); ExecuteQuery executequery =... = ""; Báo cáo giữa kỳ CSDL Phân Tán int kt = executequery.Executenonquery(Insert, siteTrue); if (kt > 0) executequery.Executenonquery(Delete, siteFalse); else { } MessageBox.Show("Values2 Fail!!!"); return; } } MessageBox.Show("Update xong"); } } Demo: Sieuthi_1 khu vực phía nam, sieuthi_2 còn lại Ta thực hiện Update Sieuthi_1 khác phía bắc, sieuthi_2 còn lại Update Báo cáo giữa kỳ CSDL Phân Tán ... 1(QLST_3) Báo cáo giữa kỳ CSDL Phân Tán 4 Chức năng tìm kiếm mặt hàng Code private void btnTimkiemST_Click(object sender, EventArgs e) { DataTable dtt = new DataTable(); DataTable TABLE2 = new DataTable(); DataTable TABLE1 = new DataTable(); DataTable TABLE = new DataTable(); DataRow dtr; string giatri, toantu; bool test; string soluong = txtsoluong.Text.Trim(); string select = ""; Báo cáo giữa kỳ CSDL Phân. .. siteTS = datadictionary.returnsite(manhTS); } } // Tìm Kiếm if (txtkhuvuc.Text != "" && txtTaisan.Text != "") { fields1 = datadictionary.field(manhKV); fields2 = datadictionary.field(manhTS); Báo cáo giữa kỳ CSDL Phân Tán primary1 = datadictionary.primaryKey(manhKV); primary2 = datadictionary.primaryKey(manhTS); select = @"Select " + siteKV + ".dbo." + manhKV + "." + primary1.Trim() + "," + fields1 + ",... == t2) return true; else return false; } public string ThuocManh(string truong, string value) { DataTable dtt = new DataTable(); DataRow dtr; string manh = "", giatri, toantu; bool test; Báo cáo giữa kỳ CSDL Phân Tán dtt = returnTT_GT(truong); int n = dtt.Rows.Count; if (n >= 0) { dtr = dtt.Rows[0]; giatri = dtr["GIATRI"].ToString().Trim(); toantu = dtr["TOANTU"].ToString().Trim(); test = sosanhUp(value,... "', diachi='" + txtDiachi.Text + "', sdt='" + txtSodt.Text + "', khuvuc='" + txtKhuvuc.Text.ToUpper() + "' where Mast='" + mast + "'"; int i = executequery.Executenonquery(update, siteKV); Báo cáo giữa kỳ CSDL Phân Tán if (i > 0) { update = "update " + manhTS + " set Taisan='" + Convert.ToInt32(txtTaisan.Text.Trim()) + "' where Mast='" + mast + "'"; i = executequery.Executenonquery(update, siteKV); }... manh) { DataTable tb = new DataTable(); string select = "Select * from Fields where MANH='" + manh + "' AND FIELD='" + field + "'"; try { if (cnn.State == ConnectionState.Closed) cnn.Open(); Báo cáo giữa kỳ CSDL Phân Tán SqlDataAdapter sda = new SqlDataAdapter(select, cnn); sda.Fill(tb); if (tb.Rows.Count > 0) return true; } catch (SqlException ex) { ex.ToString(); } finally { cnn.Close(); } return false; .. .Báo cáo kỳ CSDL Phân Tán Báo cáo kỳ CSDL Phân Tán Từ Điển Dữ Liệu Bảng ViTu Chứa thông tin vị từ phân mảnh thuộc tính IsTRUE trả mảnh thoả điều... dataGvSieuthi.DataSource = dttmanhTS; } } } Demo: 2)Chức thay đổi tt siêu thị Báo cáo kỳ CSDL Phân Tán Code: Báo cáo kỳ CSDL Phân Tán private void btnUpdate_Click(object sender, EventArgs e) { DataDictionary... MessageBox.Show("Update Fail "); } } } Demo: Chuyển ST001 siêu thị site sang site Báo cáo kỳ CSDL Phân Tán Dữ liệu sau update Báo cáo kỳ CSDL Phân Tán Chức Năng Thêm Mới Siêu Thị Code private void tbn_AddSm_Click(object

Ngày đăng: 03/03/2016, 14:46

TỪ KHÓA LIÊN QUAN

w