private void Init(HanaProcessor processor, IEnumerable <string> columnDefinitions)
        {
            Connection  = (HanaConnection)processor.Connection;
            Transaction = (HanaTransaction)processor.Transaction;

            NameWithSchema = string.IsNullOrEmpty(_schemaName) ? Name : string.Format("\"{0}\".{1}", _schemaName, Name);
            Create(columnDefinitions);
        }
Esempio n. 2
0
 public static void EndTransaction(ref HanaConnection sqlConnection, ref HanaTransaction sqlTransaction)
 {
     if (sqlTransaction != null)
     {
         sqlTransaction.Dispose();
     }
     CloseConnection(sqlConnection);
 }
Esempio n. 3
0
        private void Init(HanaProcessor processor, IEnumerable<string> columnDefinitions)
        {
            Connection = (HanaConnection)processor.Connection;
            Transaction = (HanaTransaction)processor.Transaction;

            NameWithSchema = string.IsNullOrEmpty(_schemaName) ? Name : string.Format("\"{0}\".{1}", _schemaName, Name);
            Create(columnDefinitions);
        }
Esempio n. 4
0
        private void Init(HanaProcessor processor, IEnumerable <string> columnDefinitions)
        {
            NameWithSchema = quoter.QuoteTableName(Name, _schemaName);

            Connection  = (HanaConnection)processor.Connection;
            Transaction = (HanaTransaction)processor.Transaction;

            Create(columnDefinitions);
        }
Esempio n. 5
0
        public HanaTestSequence(HanaProcessor processor, string schemaName, string sequenceName)
        {
            _schemaName = schemaName;
            Name = quoter.QuoteSequenceName(sequenceName);

            Connection = (HanaConnection)processor.Connection;
            Transaction = (HanaTransaction)processor.Transaction;
            NameWithSchema = string.IsNullOrEmpty(_schemaName) ? Name : string.Format("\"{0}\".{1}", _schemaName, Name);
            Create();
        }
        public HanaTestSequence(HanaProcessor processor, string schemaName, string sequenceName)
        {
            _schemaName = schemaName;
            Name        = _quoter.QuoteSequenceName(sequenceName, null);

            Connection     = (HanaConnection)processor.Connection;
            Transaction    = (HanaTransaction)processor.Transaction;
            NameWithSchema = _quoter.QuoteSequenceName(sequenceName, schemaName);
            Create();
        }
Esempio n. 7
0
        public HanaTestSequence(HanaProcessor processor, string schemaName, string sequenceName)
        {
            _schemaName = schemaName;
            Name        = quoter.QuoteSequenceName(sequenceName);

            Connection     = (HanaConnection)processor.Connection;
            Transaction    = (HanaTransaction)processor.Transaction;
            NameWithSchema = string.IsNullOrEmpty(_schemaName) ? Name : string.Format("\"{0}\".{1}", _schemaName, Name);
            Create();
        }
Esempio n. 8
0
        private void Init(HanaProcessor processor, IEnumerable <string> columnDefinitions)
        {
            NameWithSchema = _quoter.QuoteTableName(Name, _schemaName);

            Connection  = (HanaConnection)processor.Connection;
            Transaction = (HanaTransaction)processor.Transaction;

            if (Connection.State != ConnectionState.Open)
            {
                Connection.Open();
            }

            Create(columnDefinitions);
        }
Esempio n. 9
0
        public static void Execute(string commandText
                                   , HanaParameter parameter         = null
                                   , List <HanaParameter> parameters = null
                                   , Dictionary <string, object> paramsOutputValue = null
                                   , CommandType type            = CommandType.StoredProcedure
                                   , HanaConnection connection   = null
                                   , HanaTransaction transaction = null)
        {
            HanaCommand command = null;

            try
            {
                if (connection == null)
                {
                    connection = OpenConnection();
                }

                command = PrepareCommand(commandText, connection, type, parameter, parameters, transaction);
                command.ExecuteNonQuery();
                if (parameter != null || parameters != null)
                {
                    foreach (HanaParameter x in parameters)
                    {
                        if (x.Direction == ParameterDirection.Output)
                        {
                            paramsOutputValue.Add(x.ParameterName, command.Parameters[x.ParameterName].Value);
                        }
                    }
                }
            }
            catch (HanaException)
            {
                throw;
            }
            finally
            {
                CloseCommand(command);
                if (transaction == null)
                {
                    CloseConnection(connection);
                }
            }
        }
Esempio n. 10
0
        private static HanaCommand PrepareCommand(string commandText
                                                  , HanaConnection connection
                                                  , CommandType cmdType             = CommandType.StoredProcedure
                                                  , HanaParameter parameter         = null
                                                  , List <HanaParameter> parameters = null
                                                  , HanaTransaction transaction     = null)
        {
            HanaCommand command = new HanaCommand();

            command.Connection  = connection;
            command.CommandType = cmdType;
            command.CommandText = commandText;

            if (transaction != null)
            {
                command.Transaction = transaction;
            }

            if (parameter != null)
            {
                if (parameters == null)
                {
                    parameters = new List <HanaParameter>();
                }
                parameters.Add(parameter);
            }

            if (parameters != null)
            {
                foreach (HanaParameter x in parameters)
                {
                    command.Parameters.Add(x);
                }
            }

            return(command);
        }
Esempio n. 11
0
 public static void BeginTransaction(ref HanaConnection sqlConnection, ref HanaTransaction sqlTransaction)
 {
     sqlConnection  = OpenConnection();
     sqlTransaction = sqlConnection.BeginTransaction();
 }
Esempio n. 12
0
        /// <summary>
        /// 回傳Scalar(一筆資料的一個欄位)
        /// 此方法可自行設定要用哪種Type(SP OR SQLString)
        /// 包含交易物件
        /// </summary>
        /// <param name="sqlString">SqlSreing語法或SP名稱</param>
        /// <param name="cmdType">使用的Type</param>
        /// <param name="connection">連線物件(為了確保同一個連線)</param>
        /// <param name="tran">交易物件(為了確保同一筆交易)</param>
        /// <param name="paramsArr">HanaParameter參數陣列</param>
        /// <returns>回傳資料</returns>
        public object ExecuteScalarTran(string sqlString, CommandType cmdType, ref HanaConnection connection, ref HanaTransaction tran, object[] paramsArr)
        {
            object obj;
            object result = null;

            try
            {
                HanaCommand cmd = new HanaCommand()
                {
                    CommandType = cmdType
                };

                HanaParameter[] cmdParams = null;
                if (paramsArr != null)
                {
                    cmdParams = new HanaParameter[paramsArr.Length];
                    SettingParams(cmdParams, paramsArr);
                }

                CmdSettingModel cmdSetModel = new CmdSettingModel()
                {
                    Conn = connection, Trans = tran, Text = sqlString
                };
                SettingCommand(cmd, cmdSetModel, cmdParams);

                result = cmd.ExecuteScalar();
                SqlParameterOutputSetting(cmdParams);
                obj = result;
            }
            catch (HanaException sqlException)
            {
                throw new Exception(string.Concat("存取SQL Server發生錯誤. SysInfo=", sqlException.Message));
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return(obj);
        }
Esempio n. 13
0
 /// <summary>
 /// 透過SQLString回傳Scalar(一筆資料的一個欄位)
 /// 包含交易物件
 /// </summary>
 /// <param name="sqlString">SqlSreing語法</param>
 /// <param name="connection">連線物件(為了確保同一個連線)</param>
 /// <param name="tran">交易物件(為了確保同一筆交易)</param>
 /// <param name="paramsArr">HanaParameter參數陣列</param>
 /// <returns>回傳資料</returns>
 public object ExecuteScalarTran(string sqlString, ref HanaConnection connection, ref HanaTransaction tran, object[] paramsArr)
 {
     return(ExecuteScalarTran(sqlString, CommandType.Text, ref connection, ref tran, paramsArr));
 }
Esempio n. 14
0
 /// <summary>
 /// 透過SQLString回傳Scalar(一筆資料的一個欄位)
 /// 不含參數物件
 /// 包含交易物件
 /// </summary>
 /// <param name="sqlString">SqlSreing語法</param>
 /// <param name="connection">連線物件(為了確保同一個連線)</param>
 /// <param name="tran">交易物件(為了確保同一筆交易)</param>
 /// <returns>回傳資料</returns>
 public object ExecuteScalarTran(string sqlString, ref HanaConnection connection, ref HanaTransaction tran)
 {
     return(ExecuteScalarTran(sqlString, ref connection, ref tran, null));
 }
Esempio n. 15
0
 /// <summary>
 /// 新增、修改、刪除
 /// 不含參數(parms)對SQL資料做更動
 /// 包含交易物件
 /// </summary>
 /// <param name="sqlString"></param>
 /// <param name="connection"></param>
 /// <param name="tran"></param>
 /// <returns></returns>
 public int ExcuteSQL(string sqlString, ref HanaConnection connection, ref HanaTransaction tran)
 {
     return(ExcuteSQL(sqlString, ref connection, ref tran, null));
 }