Пример #1
0
 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]);
                     }
                 }
             }
         }
     }
 }
Пример #2
0
        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;
            }
        }
Пример #3
0
        /// <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);
        }