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; } }
/// <summary> /// load SQLNoneQuery from cache /// </summary> /// <returns>true:loaded objRet from cache; false current objRet is already good</returns> private bool loadFromCache() { enmNonQueryType qt = enmNonQueryType.Insert; if (cbxType.SelectedIndex >= 0) { qt = (enmNonQueryType)(cbxType.SelectedIndex); } if (dt != null) { if (objRet != null) { if (objRet.CommandType == qt && string.Compare(objRet.TableName, dt.TableName, StringComparison.OrdinalIgnoreCase) == 0) { saveTocCache(); return(false); } } SQLNoneQuery nq = null; if (_commandCache != null) { Dictionary <string, SQLNoneQuery> c; if (_commandCache.TryGetValue(qt, out c)) { c.TryGetValue(dt.TableName, out nq); } } if (nq == null) { nq = new SQLNoneQuery(); nq.TableName = dt.TableName; nq.CommandType = qt; objRet = nq; saveTocCache(); } else { objRet = nq; } } return(true); }
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); }