示例#1
0
        public Task <DataSet> FillSchemaAsync(SADataAdapter dta, DataSet dataSet, CancellationToken cancellationToken)
        {
            var result = new TaskCompletionSource <DataSet>();

            if (cancellationToken == CancellationToken.None || !cancellationToken.IsCancellationRequested)
            {
                try
                {
                    lock (asyncLock2)
                    {
                        dta.FillSchema(dataSet, SchemaType.Source);
                        result.SetResult(dataSet);
                    }
                }
                catch (System.Exception ex)
                {
                    result.SetException(ex);
                }
            }
            else
            {
                result.SetCanceled();
            }
            return(result.Task);
        }
示例#2
0
        public override DataSet LoadDataSet(string sqlQuery)
        {
            DataSet dts = new DataSet();

            try
            {
                if (_transaction == null)
                {
                    Open();
                    _command = new SACommand(sqlQuery, _connection);
                }
                else
                {
                    _command = new SACommand(sqlQuery, _connection, _transaction);
                }
                SADataAdapter dta = new SADataAdapter(_command);

                dta.FillSchema(dts, SchemaType.Source);
                dta.Fill(dts);

                if (_transaction == null)
                {
                    Close();
                }
            }
            catch (System.Exception e)
            {
                if (_transaction != null)
                {
                    _transaction.Rollback();
                }
                string msg = "Loading dataset error :" + e.Message;
                Logger.Info(msg);
                throw new System.Exception(msg);
            }
            finally
            {
                Close();
            }
            return(dts);
        }