private void StoreQueryResultToVariables(Dictionary <String, String> parameters) { using (iDB2Command command = new iDB2Command(parameters["SelectQuery"], _dB2connection)) { command.CommandTimeout = 500000; if (parameters.ContainsKey("ParameterVariables")) { foreach (String str in parameters["ParameterVariables"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { if (EngineState.VariableDictionary.ContainsKey(str)) { if (Regex.IsMatch(EngineState.VariableDictionary[str].ToString(), "^[1-9]{1}[0-9]{0,}([.]{1}[0-9]{1,}){0,1}$", RegexOptions.Compiled)) { command.Parameters.AddWithValue(str, EngineState.VariableDictionary[str].ToString()); } else { command.Parameters.AddWithValue(str, String.Format("'{0}'", EngineState.VariableDictionary[str].ToString())); } } } } using (iDB2DataReader reader = command.ExecuteReader()) { if (reader.Read()) { for (int i = 0; i < reader.FieldCount; i++) { if (EngineState.VariableDictionary.ContainsKey(reader.GetName(i))) { EngineState.VariableDictionary[reader.GetName(i)] = reader[i]; } else { EngineState.VariableDictionary.Add(reader.GetName(i), reader[i]); } } } } } }
public void ExecuteReader(Session session) { string table = this.LibraryWhereTable.Name + "." + this.Name; command = new iDB2Command(table, session.Connection, session.Transaction); command.CommandTimeout = 0; command.CommandType = CommandType.TableDirect; try { iDB2DataReader reader = command.ExecuteReader(); for(int i=0;i<reader.FieldCount;i++) { string column = reader.GetName(i); Type type = reader.GetFieldType(i); Column.Create(this.AllorsSession, this, column, type); } while (reader.Read()) { Row row = Row.Create(this.AllorsSession, this); // Create cells for each column foreach (Column col in this.Columns) { object value = reader.GetValue(reader.GetOrdinal(col.Name)); if (value != null) { CellFactory.Create(this.AllorsSession, row, col, value); } } } } catch (Exception ex) { throw ex; } }
/// <summary> /// Using the data reader build the classes internal collection. /// May have to change this routine if I can not get the serializer /// to work correctly. /// </summary> /// <param name="dr"></param> /// <returns></returns> private static CustOrder RowToDict(iDB2DataReader dr) { CustOrder data = new CustOrder(); for (int i = 0; i < dr.FieldCount; i++) { //row.Add(dr.GetName(i).Trim(), dr.GetValue(i).ToString().Trim()); // we can not use the above techinque we have to load a basic object // switch (dr.GetName(i).Trim()) { case "ITEMNO": data.ItemNumber = dr.GetValue(i).ToString().Trim(); break; case "CUSTNO": data.CustomerCode = dr.GetValue(i).ToString().Trim(); break; case "CUSTNAM": data.CustomerName = dr.GetValue(i).ToString().Trim(); break; case "ORDNO": data.OrderNumber = dr.GetValue(i).ToString().Trim(); break; case "ORLINE": data.LineNumber = dr.GetValue(i).ToString().Trim(); break; case "SHPMTH": data.ShippingMethod = dr.GetValue(i).ToString().Trim(); break; case "TRACK": data.TrackingNumber = dr.GetValue(i).ToString().Trim(); break; case "STATUS": data.Status = dr.GetValue(i).ToString().Trim(); break; case "CSRNAM": data.CsrName = dr.GetValue(i).ToString().Trim(); break; case "CSREML": data.CsrEmail = dr.GetValue(i).ToString().Trim(); break; case "ADVTSR": data.Advertiser = dr.GetValue(i).ToString().Trim(); break; case "DESIGN": data.Design = dr.GetValue(i).ToString().Trim(); break; case "RCVDBY": data.ReceivedBy = dr.GetValue(i).ToString().Trim(); break; case "PONUM": data.PoNumber = dr.GetValue(i).ToString().Trim(); break; case "TGTSDT": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.TargetShipDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "ACTSDT": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.ActualShipDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "TGTDLD": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.TargetDeliveryDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; case "ACTDLD": if (dr.GetValue(i).ToString().Trim() != "") { if (dr.GetValue(i).ToString().Trim() == "0" || dr.GetValue(i).ToString().Trim() == "99999999") { } else { data.ActualDeliveryDate = StringUtil.ParseIbsDate(dr.GetValue(i).ToString().Trim()); } } break; } } switch (data.Status) { case "00500": data.StatusText = "Not Confirmed"; break; case "01000": data.StatusText = "Please upload art"; break; case "02000": data.StatusText = "Order Confirmation"; break; case "03000": data.StatusText = "Proof Ready for Approval"; break; case "04000": data.StatusText = "Proof Approved"; break; case "05000": data.StatusText = "In Production - Ripped"; break; case "06000": data.StatusText = "In Production - Printed"; break; case "07000": data.StatusText = "In Production - Finished"; break; case "08000": data.StatusText = "Shipped"; break; case "09000": data.StatusText = "Delivered"; break; case "10000": data.StatusText = "Order Invoiced"; break; default: data.StatusText = "ERROR"; break; } return(data); }