Esempio n. 1
0
        /// <summary>
        /// Run Select Query
        /// </summary>
        /// <param name="pApplicationDatabaseQuery"></param>
        /// <returns></returns>
        public override IList <DBRecordInfo> RunSelectQuery(ApplicationDatabaseQuery pApplicationDatabaseQuery)
        {
            IList <DBRecordInfo> results = null;
            DataSet dataSet = null;

            try
            {
                using (OracleConnection connection = new OracleConnection(
                           pApplicationDatabaseQuery.ApplicationDatabas.ProviderConnectionString))
                {
                    using (OracleCommand command = new OracleCommand
                    {
                        Connection = connection,
                        CommandText = pApplicationDatabaseQuery.ApplicationDatabaseQueryCommand,
                        CommandType = CommandType.Text
                    })
                    {
                        connection.Open();

                        using (OracleDataAdapter adapter = new OracleDataAdapter(command))
                        {
                            dataSet = new DataSet();
                            adapter.Fill(dataSet);

                            if (dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
                            {
                                results = (from DataRow row in dataSet.Tables[0].Rows
                                           select new DBRecordInfo {
                                    Row = row
                                }).ToList();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                dataSet = null;
            }

            return(results);
        }
Esempio n. 2
0
 /// <summary>
 /// Run Insert Query
 /// </summary>
 /// <param name="pApplicationDatabaseQuery"></param>
 /// <param name="pAdapterFields"></param>
 /// <param name="pDBRecord"></param>
 /// <returns></returns>
 public abstract RecordTransactionStatus RunInsertQuery(ApplicationDatabaseQuery pApplicationDatabaseQuery, ICollection <IntegrationAdapterField> pAdapterFields, DBRecordInfo pDBRecord);
Esempio n. 3
0
 /// <summary>
 /// Run Select Query
 /// </summary>
 /// <param name="pApplicationDatabaseQuery"></param>
 /// <param name="providerConnectionString"></param>
 /// <returns></returns>
 public abstract IList <DBRecordInfo> RunSelectQuery(ApplicationDatabaseQuery pApplicationDatabaseQuery);
 public DBSourceAdapterResponse(IntegrationAdapter pAdapterMetadata, ApplicationDatabaseQuery pApplicationDatabaseQuery)
     : base(pAdapterMetadata)
 {
     this.ApplicationDatabaseQuery = pApplicationDatabaseQuery;
 }
Esempio n. 5
0
        /// <summary>
        /// Run Insert Query
        /// </summary>
        /// <param name="pApplicationDatabaseQuery"></param>
        /// <param name="pAdapterFields"></param>
        /// <param name="pDBRecord"></param>
        /// <returns></returns>
        public override RecordTransactionStatus RunInsertQuery(ApplicationDatabaseQuery pApplicationDatabaseQuery, ICollection <IntegrationAdapterField> pAdapterFields, DBRecordInfo pDBRecord)
        {
            RecordTransactionStatus recordTransactionStatus = RecordTransactionStatus.None;
            string lastParamName = string.Empty;

            try
            {
                using (OracleConnection connection = new OracleConnection(
                           pApplicationDatabaseQuery.ApplicationDatabas.ProviderConnectionString))
                {
                    using (OracleCommand command = new OracleCommand
                    {
                        Connection = connection,
                        CommandText = pApplicationDatabaseQuery.ApplicationDatabaseQueryCommand,
                        CommandType = CommandType.Text,
                        BindByName = true
                    })
                    {
                        foreach (IntegrationAdapterField field in pAdapterFields)
                        {
                            lastParamName = field.FieldName;
                            object paramValue = DataUtilities.GetFieldParameterValue(field, pDBRecord.Row, ApplicationDatabaseType.Oracle);

                            OracleParameter param = command.CreateParameter();
                            param.ParameterName = field.FieldName;
                            param.OracleDbType  = field.FieldOracleDbType;
                            param.Value         = paramValue;

                            command.Parameters.Add(param);
                        }

                        connection.Open();

                        if (command.ExecuteNonQuery() > 0)
                        {
                            recordTransactionStatus = RecordTransactionStatus.Succeeded;
                        }
                        else
                        {
                            recordTransactionStatus = RecordTransactionStatus.Failed;
                        }
                    }
                }
            }
            catch (OracleException dbException)
            {
                pDBRecord.ExceptionExtraMessage = lastParamName;

                if (dbException.Number == 2601) // Cannot insert duplicate keys //Or check ORA-00001: unique constraint (.) violated
                {
                    recordTransactionStatus = RecordTransactionStatus.Duplicated;
                    LogManager.LogException(dbException);
                }
                else
                {
                    recordTransactionStatus = RecordTransactionStatus.Failed;
                    throw dbException;
                }
            }
            catch (Exception ex)
            {
                pDBRecord.ExceptionExtraMessage = lastParamName;

                recordTransactionStatus = RecordTransactionStatus.Failed;
                throw ex;
            }
            finally
            {
            }

            return(recordTransactionStatus);
        }