public override int CreateTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable table) { StringBuilder sql = new StringBuilder(); try { sql.Append(" CREATE TABLE " + table.Table + " ( "); for (int i = 0; i < table.listColumn.Count; i++) { sql.Append(" " + table.listColumn[i].ColumnName + " " + table.listColumn[i].ColumnDefine); if (table.listColumn[i].isPRIMARY) { sql.Append(" PRIMARY KEY "); } if (i < table.listColumn.Count - 1) { sql.Append(" , "); } } sql.Append(" ); "); } catch (Exception ex) { SanitaLogEx.e(TAG, ex); } int ret = -100; try { ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); return(ret); } catch { return(-100); } }
public int DeleteTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable table) { StringBuilder sql = new StringBuilder(); try { sql.Append(" DROP TABLE " + table.Table + " ; "); } catch (Exception ex) { SanitaLogEx.e(TAG, ex); } int ret = -100; try { ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); return(ret); } catch { return(-100); } }
public override int AlterTableTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable Fixtable, ClassTable NewTable) { try { //Update column for (int i = 0; i < Fixtable.listColumn.Count; i++) { //Tim column tuong ung trong NewTable var foundColumn = NewTable.listColumn.FirstOrDefault(p => p.ColumnName.ToLower() == Fixtable.listColumn[i].ColumnName.ToLower()); if (foundColumn == null) { StringBuilder sql = new StringBuilder(); sql.Append(" ALTER TABLE " + Fixtable.Table + " "); sql.Append(" ADD COLUMN " + Fixtable.listColumn[i].ColumnName + " " + Fixtable.listColumn[i].ColumnDefine + Fixtable.listColumn[i].ColumnAfter + " "); int ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); if (ret < 0) { return(ret); } SanitaLogEx.e(TAG, " >>Add column '" + Fixtable.listColumn[i].ColumnName + "'"); } } return(0); } catch (Exception ex) { SanitaLogEx.e(TAG, ex); return(-100); } }
public override int CreateTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable table) { StringBuilder sql = new StringBuilder(); try { sql.Append(" CREATE TABLE " + table.Table + " ( "); for (int i = 0; i < table.listColumn.Count; i++) { sql.Append(" " + table.listColumn[i].ColumnName + " " + table.listColumn[i].ColumnDefine); if (table.listColumn[i].isPRIMARY) { sql.Append(" PRIMARY KEY "); } if (i < table.listColumn.Count - 1) { sql.Append(" , "); } } sql.Append(" ) WITH OIDS ; "); //sql.Append(" ); "); //Update index for (int i = 0; i < table.listColumn.Count; i++) { if (table.listColumn[i].isIndex) { sql.Append(String.Format("CREATE INDEX {0}_{1}_idx ON {0} USING btree ({2});", table.Table.ToLower(), table.listColumn[i].ColumnName.ToLower().Replace(table.Table.ToLower().Replace("tb_", ""), ""), table.listColumn[i].ColumnName)); } } } catch (Exception ex) { SanitaLogEx.e(TAG, ex); } int ret = -100; try { ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); return(ret); } catch { return(-100); } }
public int AlterTableTable_DeleteColumn(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable NewTable, ClassTable Fixtable) { StringBuilder sql = new StringBuilder(); bool isNeedDeleteColumn = false; try { //Update column for (int i = 0; i < NewTable.listColumn.Count; i++) { //Tim column tuong ung trong NewTable var foundColumn = Fixtable.listColumn.FirstOrDefault(p => p.ColumnName.ToLower() == NewTable.listColumn[i].ColumnName.ToLower()); if (foundColumn == null) { sql.Append(" ALTER TABLE " + NewTable.Table + " DROP COLUMN " + NewTable.listColumn[i].ColumnName + "; "); isNeedDeleteColumn = true; SanitaLogEx.e(TAG, " >>Drop column '" + NewTable.listColumn[i].ColumnName + "'"); } } sql.Replace(", ; ", "; "); } catch (Exception ex) { SanitaLogEx.e(TAG, ex); } int ret = -100; try { if (isNeedDeleteColumn) { ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); return(ret); } else { return(0); } } catch { return(-100); } }
public override int AlterTableTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable Fixtable, ClassTable NewTable) { StringBuilder sql = new StringBuilder(); bool isNeedAddColumn = false; bool isNeedAddIndex = false; string strPRIMARY = ""; try { sql.Append(" ALTER TABLE " + Fixtable.Table + " "); //Update column for (int i = 0; i < Fixtable.listColumn.Count; i++) { //Add PRIMARY KEY if (Fixtable.listColumn[i].isPRIMARY) { if (string.IsNullOrEmpty(strPRIMARY)) { strPRIMARY = "'" + Fixtable.listColumn[i].ColumnName + "'"; } else { strPRIMARY += " , " + "'" + Fixtable.listColumn[i].ColumnName + "'"; } } //Tim column tuong ung trong NewTable bool isupdateSQL = false; var foundColumn = NewTable.listColumn.FirstOrDefault(p => p.ColumnName.ToLower() == Fixtable.listColumn[i].ColumnName.ToLower()); if (foundColumn == null) { //AliboboLog.e("[SynchSchema] Add column '" + Fixtable.listColumn[i].ColumnName + "'"); sql.Append(" ADD COLUMN " + Fixtable.listColumn[i].ColumnName + " " + Fixtable.listColumn[i].ColumnDefine + " "); isNeedAddColumn = true; isupdateSQL = true; SanitaLogEx.e(TAG, " >>Add column '" + Fixtable.listColumn[i].ColumnName + "'"); } if (i < Fixtable.listColumn.Count - 1) { if (isupdateSQL) { sql.Append(" , "); } } else //Da check den column cuoi cung { //Them dau ket thuc lenh sql.Append(" ; "); } } //Reset if (!isNeedAddColumn) { sql = new StringBuilder(); } //Update index for (int i = 0; i < Fixtable.listColumn.Count; i++) { if (Fixtable.listColumn[i].isIndex) { String index_name = String.Format("{0}_{1}_idx", Fixtable.Table.ToLower(), Fixtable.listColumn[i].ColumnName.ToLower().Replace(Fixtable.Table.ToLower().Replace("tb_", ""), "")); var foundIndex = NewTable.listIndex.FirstOrDefault(p => p.ColumnName.Equals(index_name, StringComparison.CurrentCultureIgnoreCase)); if (foundIndex == null) { sql.Append(String.Format("CREATE INDEX {2} ON {0} USING btree ({1});", Fixtable.Table, Fixtable.listColumn[i].ColumnName, index_name)); isNeedAddIndex = true; SanitaLogEx.e(TAG, " >>Add index '" + Fixtable.listColumn[i].ColumnName + "'"); } } } sql.Replace(", ; ", "; "); } catch (Exception ex) { SanitaLogEx.e(TAG, ex); } int ret = -100; try { if (isNeedAddColumn || isNeedAddIndex) { ret = myBaseDao.DoUpdate(connection, trans, sql.ToString()); return(ret); } else { return(0); } } catch { return(-100); } }
public virtual int CreateTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable table) { return(-100); }
public virtual int AlterTableTable(IDbConnection connection, IDbTransaction trans, String DatabaseName, ClassTable Fixtable, ClassTable NewTable) { return(-100); }