private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.FieldSelectionChanged; if (dataGrid1.CurrentCell != null && dataGrid1.CurrentCell.RowIndex != nCurRow) { nCurRow = dataGrid1.CurrentCell.RowIndex; if (nCurRow >= 0) { if (ds.Tables[0].Rows[nCurRow][2] != null) { txtValue.Text = ds.Tables[0].Rows[nCurRow][2].ToString(); } else { txtValue.Text = ""; } } } editState = EnumEditState.Ready; }
private void txtValue_TextChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.ValueTextChanged; try { int n = dataGrid1.CurrentCell.RowIndex; if (n >= 0 && ds != null && ds.Tables.Count > 0 && n < ds.Tables[0].Rows.Count) { string fn = (string)(dataGrid1.CurrentRow.Cells[0].Value); EPField fld = objRet.GetField(fn); if (fld != null) { fld.FieldText = txtValue.Text; ds.Tables[0].Rows[n][2] = txtValue.Text; objRet.SQL = string.Empty; txtSQL.Text = objRet.SQL; } } } catch (Exception er) { FormLog.NotifyException(true, er); } finally { editState = EnumEditState.Ready; } }
/// <summary> /// load from outside /// </summary> /// <param name="sql"></param> public void LoadData(SQLNoneQuery sql) { if (editState != EnumEditState.NotLoaded) { throw new ExceptionLimnorDatabase("Calling LoadData at the state of {0}", editState); } dbConn = sql.Connection; //load table names into lstTable QueryParser._UseLowerCase = sql.Connection.ConnectionObject.LowerCaseSqlKeywords; System.Data.DataTable tbl = sql.Connection.ConnectionObject.GetTables(); if (tbl != null) { for (int i = 0; i < tbl.Rows.Count; i++) { if (tbl.Rows[i]["Table_Name"] != null) { string s = tbl.Rows[i]["Table_Name"].ToString(); int n = lstTable.Items.Add(s); if (string.Compare(s, sql.TableName, StringComparison.OrdinalIgnoreCase) == 0) { lstTable.SelectedIndex = n; } } } } objRet = ((SQLNoneQuery)sql.Clone()); int k = (int)(objRet.CommandType); if (k >= 0 && k < cbxType.Items.Count) { cbxType.SelectedIndex = k; } txtWhere.Text = objRet.Filter; txtSQL.Text = objRet.SQL; btQueryBuilder.Enabled = (objRet.CommandType != enmNonQueryType.Insert); if (!string.IsNullOrEmpty(objRet.TableName)) { for (int i = 0; i < lstTable.Items.Count; i++) { if (string.Compare(objRet.TableName, lstTable.Items[i].ToString(), StringComparison.OrdinalIgnoreCase) == 0) { lstTable.SelectedIndex = i; break; } } } else { if (lstTable.Items.Count > 0) { lstTable.SelectedIndex = 0; } } editState = EnumEditState.Ready; lstTable_SelectedIndexChanged(this, null); }
private void cbxType_SelectedIndexChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.CommandTypeChanged; try { if (cbxType.SelectedIndex >= 0) { enmNonQueryType qt = (enmNonQueryType)cbxType.SelectedIndex; if (objRet.CommandType != qt) { saveTocCache(); showSQL(); } btQueryBuilder.Enabled = (qt != enmNonQueryType.Insert); } } finally { editState = EnumEditState.Ready; } }
private void btChkSyntax_Click(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.CheckSyntaxClick; if (bSQLChanged && checkSyntax()) { txtSQL.ForeColor = System.Drawing.Color.Black; } editState = EnumEditState.Ready; }
private void dataGrid1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.ValueCellChanged; try { if (e.ColumnIndex == 1) { bool b = (bool)(dataGrid1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); string fn = (string)(dataGrid1.Rows[e.RowIndex].Cells[0].Value); if (b) { EPField f = objRet.GetField(fn); if (f == null) { EPField f0 = _currentFields[fn]; if (f0 != null) { f = (EPField)f0.Clone(); objRet.AddField(f); } } } else { objRet.RemoveField(fn); } objRet.SQL = string.Empty; txtSQL.Text = objRet.SQL; } else if (e.ColumnIndex == 2) { string fn = (string)(dataGrid1.Rows[e.RowIndex].Cells[0].Value); string val = (string)(dataGrid1.Rows[e.RowIndex].Cells[2].Value); EPField f = objRet.GetField(fn); if (f != null) { f.FieldText = val; objRet.SQL = string.Empty; txtSQL.Text = objRet.SQL; } } } finally { editState = EnumEditState.Ready; } }
private void txtWhere_TextChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.WhereTextChanged; string filter = adjustFilter(txtWhere.Text); objRet.SetFilter(filter); objRet.ResetSQL(); txtSQL.Text = objRet.SQL; editState = EnumEditState.Ready; }
private void txtSQL_TextChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.SqlTextChanged; try { txtSQL.ForeColor = System.Drawing.Color.Red; bSQLChanged = true; } finally { editState = EnumEditState.Ready; } }
private void reloadFields() { if (editState == EnumEditState.Ready) { editState = EnumEditState.Loading; if (ds != null) { try { if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { EPField fld; FieldList flds = new FieldList(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (VPLUtil.ObjectToBool(ds.Tables[0].Rows[i][1])) { fld = new EPField(); fld.Name = ds.Tables[0].Rows[i][0].ToString(); if (ds.Tables[0].Rows[i][2] != null && ds.Tables[0].Rows[i][2] != System.DBNull.Value) { fld.FieldText = ds.Tables[0].Rows[i][2].ToString(); } fld.FromTableName = ds.Tables[0].TableName; flds.AddField(fld); } } objRet.SetFields(flds); showSQL(); } } } catch (Exception er) { FormLog.NotifyException(true, er); } } editState = EnumEditState.Ready; } }
private void showSQL() { EnumEditState st = editState; editState = EnumEditState.Loading; // loadFromCache(); // objRet.SetConnection(dbConn); // if (ds != null && ds.Tables.Count > 0) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { ds.Tables[0].Rows[j][1] = false; ds.Tables[0].Rows[j][2] = string.Empty; } // bool b2 = bSQLChanged; bSQLChanged = true; txtWhere.Text = objRet.Filter; txtSQL.Text = objRet.SQL; if (checkSyntax()) { objRet.SetFilter(adjustFilter(objRet.Filter)); txtWhere.Text = objRet.Filter; txtSQL.Text = objRet.SQL; txtWhere.SelectionStart = txtWhere.Text.Length; txtSQL.SelectionStart = txtSQL.Text.Length; btQueryBuilder.Enabled = (objRet.CommandType != enmNonQueryType.Insert); bSQLChanged = b2; txtSQL.ForeColor = Color.Black; } } editState = st; }
private void btOK_Click(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.OkClick; bSQLChanged = true; if (checkSyntax()) { if (objRet.ParamCount > 0) { DlgParameters dlg = new DlgParameters(); dlg.LoadData(objRet.Parameters); dlg.ShowDialog(this); } } else { MessageBox.Show(txtInfo.Text); } this.DialogResult = System.Windows.Forms.DialogResult.OK; }
private void lstTable_SelectedIndexChanged(object sender, System.EventArgs e) { if (editState != EnumEditState.Ready) { return; } editState = EnumEditState.TableChanged; try { int n = lstTable.SelectedIndex; if (n >= 0) { //reload Field Grid ====================================== // dt = new DatabaseTable(); dt.TableName = lstTable.Items[n].ToString(); // loadFromCache(); // ds = new System.Data.DataSet("Fields"); ds.Tables.Add(dt.TableName); ds.Tables[0].Columns.Add(); ds.Tables[0].Columns.Add(); ds.Tables[0].Columns.Add(); // ds.Tables[0].Columns[0].Caption = "FieldName"; ds.Tables[0].Columns[0].ColumnName = "FieldName"; ds.Tables[0].Columns[0].DataType = typeof(string); ds.Tables[0].Columns[0].MaxLength = 30; ds.Tables[0].Columns[0].ReadOnly = true; // ds.Tables[0].Columns[1].Caption = "Include"; ds.Tables[0].Columns[1].ColumnName = "Include"; ds.Tables[0].Columns[1].DataType = typeof(bool); // ds.Tables[0].Columns[2].Caption = "Value"; ds.Tables[0].Columns[2].ColumnName = "Value"; ds.Tables[0].Columns[2].DataType = typeof(string); ds.Tables[0].Columns[2].MaxLength = 80; // dataGrid1.AllowUserToOrderColumns = false; // dt.GetFields(dbConn.ConnectionObject); int count = dt.FieldCount; object[] vs; EPField fld, fld2; _currentFields = new FieldList(); for (int i = 0; i < count; i++) { fld = dt.GetField(i); _currentFields.AddField(fld); vs = new object[3]; vs[0] = fld.Name; fld2 = objRet.GetField(fld.Name); if (fld2 != null) { fld2.OleDbType = fld.OleDbType; vs[1] = true; vs[2] = fld2.FieldText; } else { vs[1] = false; vs[2] = ""; } ds.Tables[0].Rows.Add(vs); } // ds.Tables[0].ColumnChanged += new System.Data.DataColumnChangeEventHandler(dlgPropSQLNonQuery_ColumnChanged); ds.Tables[0].ColumnChanging += new System.Data.DataColumnChangeEventHandler(dlgPropSQLNonQuery_ColumnChanging); // dataGrid1.DataSource = null; dataGrid1.Columns.Clear(); dataGrid1.AutoGenerateColumns = true; dataGrid1.DataSource = ds; dataGrid1.DataMember = dt.TableName; dataGrid1.AllowUserToOrderColumns = false; dataGrid1.AllowUserToAddRows = false; dataGrid1.AllowUserToDeleteRows = false; dataGrid1.AllowUserToResizeRows = false; dataGrid1.AllowUserToResizeColumns = true; dataGrid1.ColumnHeadersVisible = true; // dataGrid1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // dataGrid1.Columns[0].SortMode = DataGridViewColumnSortMode.NotSortable; dataGrid1.Columns[1].SortMode = DataGridViewColumnSortMode.NotSortable; dataGrid1.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; // txtValue.Text = ""; // if (string.Compare(objRet.TableName, dt.TableName, StringComparison.OrdinalIgnoreCase) != 0) { saveTocCache(); } showSQL(); } } finally { editState = EnumEditState.Ready; } }
private bool checkSyntax() { if (bSQLChanged) { QueryParser._UseLowerCase = dbConn.LowerCaseSqlKeywords; SQLNoneQuery sql = new SQLNoneQuery(); sql.SetConnection(dbConn); ParameterList ps = objRet.ParseParams(); if (ps != null) { sql.SetParameters(ps); } if (parseSQLNoneQuery(txtSQL.Text, sql)) { string tblName = objRet.TableName; objRet = sql; if (string.IsNullOrEmpty(objRet.TableName)) { objRet.TableName = tblName; } enmNonQueryType qt = enmNonQueryType.Insert; if (cbxType.SelectedIndex >= 0) { qt = (enmNonQueryType)(cbxType.SelectedIndex); } if (qt != objRet.CommandType) { cbxType.SelectedIndex = (int)qt; } for (int i = 0; i < lstTable.Items.Count; i++) { if (string.Compare(objRet.TableName, lstTable.Items[i].ToString(), StringComparison.OrdinalIgnoreCase) == 0) { if (i != lstTable.SelectedIndex) { lstTable.SelectedIndex = i; EnumEditState st = editState; editState = EnumEditState.Ready; lstTable_SelectedIndexChanged(this, EventArgs.Empty); editState = st; } break; } } setFieldTypes(); saveTocCache(); if (ds != null) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { ds.Tables[0].Rows[j][1] = false; ds.Tables[0].Rows[j][2] = ""; } for (int i = 0; i < objRet.FieldCount; i++) { EPField f = objRet.GetField(i); if (f != null) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { string fn = ds.Tables[0].Rows[j][0].ToString(); if (string.Compare(f.Name, fn, StringComparison.OrdinalIgnoreCase) == 0) { ds.Tables[0].Rows[j][1] = true; ds.Tables[0].Rows[j][2] = f.FieldText; break; } } } } } return(true); } else { txtSQL.ForeColor = System.Drawing.Color.Red; return(false); } } return(true); }