public SqlProvider()
     : base(PROVIDER_NAME)
 {
     m_mapper = new Mapper(this);
     m_builder = new CommandBuilder(this);
     m_executor = new CommandExecutor();
 }
Exemple #2
0
 public void Setup()
 {
     _logging = new StringBuilder();
     Logger.Log = s => _logging.AppendLine(s);
     _sqlCommand = new SqlCommand();
     _builder = new CommandBuilder(_sqlCommand, DbConfig.Default);
 }
        public void Init()
        {
            _processManager = A.Fake<IProcessManager>();

            _settings = new XmlConfig.XmlConfig();
            _builder = new CommandBuilder(_processManager);
        }
        public string GetCommand(int entry, float[] prob, string[] text1, string[] text2,
            Language[] lang, int[][] emDelay, int[][] emEmote)
        {
            var builder = new CommandBuilder("npc_text");

            builder.AddColumnValue("ID", entry);

            for (var i = 0; i < 8; i++)
            {
                builder.AddColumnValue("text" + i + "_0", text1[i]);
                builder.AddColumnValue("text" + i + "_1", text2[i]);
                builder.AddColumnValue("lang" + i, (int)lang[i]);
                builder.AddColumnValue("prob" + i, prob[i]);

                var k = 0;
                for (var j = 0; j < 3; j++)
                {
                    builder.AddColumnValue("em" + i + "_" + k, emDelay[i][j]);
                    k++;
                    builder.AddColumnValue("em" + i + "_" + k, emEmote[i][j]);
                    k++;
                }
            }

            return builder.BuildInsert(true);
        }
    public bool Execute(string name, string table_name, object state) {
      using (var scope =
        new TransactionScope(SupressTransactions
          ? TransactionScopeOption.Suppress
          : TransactionScopeOption.Required)) {
        using (
          SqlConnection conn = sql_connection_provider_.CreateConnection())
        using (var builder = new CommandBuilder(conn)) {
          IDbCommand cmd = builder
            .SetText(@"
update " + table_name + @"
set state = @state" + @"
where state_name = @name")
            .SetType(CommandType.Text)
            .AddParameter("@name", name)
            .AddParameterWithValue("@state", state)
            .Build();
          try {
            conn.Open();
            scope.Complete();
            return cmd.ExecuteNonQuery() > 0;
          } catch (SqlException e) {
            throw new ProviderException(e);
          }
        }
      }
    }
        public IMarqueePage GetMarqueePage(MetadataCategory category, int pageIndex, int pageSize)
        {
            if (pageIndex < 0)
                throw new ArgumentException("pageIndex cannot be less than 0");
            if (pageSize < 1)
                throw new ArgumentException("pageSize cannot be less than 1");

            var offset = pageIndex * pageSize;

            var countBuilder = new CommandBuilder();
            countBuilder.AppendFormat("select count(Location) from {0};", category);
            var numberOfPages = 1;
            var scalar = ExecuteScalar(countBuilder);
            if (scalar != null)
            {
                var result = 0;
                if (int.TryParse(scalar.ToString(), out result) && result > 0)
                {
                    numberOfPages = (int)Math.Ceiling((double)result / (double)pageSize);
                }
            }

            var builder = new CommandBuilder();
            builder.AppendFormat("select Location, Name, FromDate, ToDate from {0} order by Name limit {1}", category, pageSize);
            if (offset > 0)
                builder.AppendFormat(" offset {0};", offset);
            else
                builder.Append(";");

            var items = GetRecords<IMarquee>(builder, record => ReadRecord(record, category));

            return new MarqueePage(items, numberOfPages, pageIndex, pageSize);
        }
 public int Execute(string state_name, string table_name,
   bool likely = false) {
   using (var scope =
     new TransactionScope(SupressTransactions
       ? TransactionScopeOption.Suppress
       : TransactionScopeOption.Required)) {
     using (SqlConnection conn = sql_connection_provider_.CreateConnection())
     using (var builder = new CommandBuilder(conn)) {
       IDbCommand cmd = builder
         .SetText("delete from " + table_name +
           " where state_name " + (likely ? " like " : "=") + "@name")
         .SetType(CommandType.Text)
         .AddParameter("@name", state_name)
         .Build();
       try {
         conn.Open();
         int affected = cmd.ExecuteNonQuery();
         scope.Complete();
         return affected;
       } catch (SqlException e) {
         logger_.Error(
           StringResources.Log_MethodThrowsException.Fmt("Execute",
             kClassName),
           e);
         throw e.AsProviderException();
       }
     }
   }
 }
        public string GetCommand(int questId, int idx, int objIndex, int mapId, int wmaId, int floorId,
            int unk3, int unk4)
        {
            var builder = new CommandBuilder("quest_poi");

            builder.AddColumnValue("questid", questId);

            if (Store.Format == SqlFormat.Trinity)
                builder.AddColumnValue("id", idx);
            else
                builder.AddColumnValue("poiId", idx);

            builder.AddColumnValue("objIndex", objIndex);
            builder.AddColumnValue("mapId", mapId);

            if (Store.Format == SqlFormat.Trinity)
            {
                builder.AddColumnValue("WorldMapAreaId", wmaId);
                builder.AddColumnValue("FloorId", floorId);
            }
            else
            {
                builder.AddColumnValue("mapAreaId", wmaId);
                builder.AddColumnValue("floorId", floorId);
            }

            builder.AddColumnValue("unk3", unk3);
            builder.AddColumnValue("unk4", unk4);

            return builder.BuildInsert(true);
        }
 public AccountService(ConnectionsService connectionsService, 
     IUserRepository usersRepository,
     CommandBuilder commandBuilder)
 {
     _commandBuilder = commandBuilder;
     _usersRepository = usersRepository;
     connectionsService.CommandRecieved += _connectionsManager_OnCommandRecieved;
 }
Exemple #10
0
 /// <summary>
 /// Constructor creates instance of the class for the specified connection string and provider name
 /// </summary>
 /// <param name="connectionString">Connection String</param>
 /// <param name="providerName">Provider name</param>
 public DBHelper(string connectionString, string providerName)
 {
     _connectionManager = new ConnectionManager(connectionString, providerName);
     _commandBuilder = new CommandBuilder(providerName);
     _dbAdapterManager = new DataAdapterManager(providerName);
     _connection = _connectionManager.GetConnection();
     _providerName = _connectionManager.ProviderName;
     _assemblyProvider = new AssemblyProvider(_providerName);
 }
Exemple #11
0
        public string GetCommand(int entry, string pageText, int nextPage)
        {
            var cmd = new CommandBuilder("page_text");

            cmd.AddColumnValue("entry", entry);
            cmd.AddColumnValue("text", pageText);
            cmd.AddColumnValue("next_page", nextPage);

            return cmd.BuildInsert(true);
        }
 public CallsManager(CommandBuilder commandBuilder,
     IAudioDeviceResource audioDevice,
     TransportManager transportManager)
 {
     _commandBuilder = commandBuilder;
     _audioDevice = audioDevice;
     _transportManager = transportManager;
     _transportManager.CommandRecieved += _transportManager_OnCommandRecieved;
     _audioDevice.DataPacketCaptured += _audioDevice_OnDataPacketCaptured;
 }
Exemple #13
0
        public void CommandBuilder_WithParameterOfTypeString_Adds_Parameter()
        {
            var command = PrepareCommand();

            var b = new CommandBuilder(command, DbConfig.Default).WithParameter("name", "value");

            var result = (IDbDataParameter)b.Command.Parameters[0];

            Assert.AreEqual("name", result.ParameterName);
            Assert.AreEqual("value", result.Value);
        }
Exemple #14
0
        public void AsScalar_WhenCalled_ReturnsScalarValue()
        {
            var command = PrepareCommand();
            command.SetScalarValue(1);

            var commandBuilder = new CommandBuilder(command, DbConfig.Default);

            var result = commandBuilder.AsScalar<int>();

            Assert.AreEqual(1, result);
        }
 public VoiceManager(ConnectionsManager connectionsManager, 
     IUsersRepository usersRepository,
     IPushSender pushSender,
     CommandBuilder commandBuilder)
 {
     _commandBuilder = commandBuilder;
     _connectionsManager = connectionsManager;
     _usersRepository = usersRepository;
     _pushSender = pushSender;
     _connectionsManager.CommandRecieved += _connectionsManager_OnCommandRecieved;
 }
        public string GetCommand(ulong guid, uint id, Vector3 pos)
        {
             var builder = new CommandBuilder("waypoints");
            builder.AddColumnValue("guid", guid);
            builder.AddColumnValue("id", id);
            builder.AddColumnValue("position_x", pos.X);
            builder.AddColumnValue("position_y", pos.Y);
            builder.AddColumnValue("position_z", pos.Z);

            return builder.BuildInsert(true);
        }
        public string GetCommand(Race race, Class clss, int spellId)
        {
            var builder = new CommandBuilder("playercreateinfo_spell");

            builder.AddColumnValue("race", (int)race);
            builder.AddColumnValue("class", (int)clss);
            builder.AddColumnValue("Spell", spellId);
            builder.AddColumnValue("Note", string.Empty);

            return builder.BuildInsert(true);
        }
 public ApplicationManager(
     AccountManager accountManager,
     CommandBuilder commandBuilder,
     IDeviceInfoProvider deviceInfo,
     TransportManager transportManager)
 {
     _accountManager = accountManager;
     _commandBuilder = commandBuilder;
     _deviceInfo = deviceInfo;
     _transportManager = transportManager;
     _transportManager.CommandRecieved += _transportManager_OnCommandRecieved;
 }
 public AccountManager(IKeyValueStorage storage, 
     CommandBuilder commandBuilder,
     IUserIdProvider userIdProvider,
     TransportManager transportManager)
 {
     _storage = storage;
     _commandBuilder = commandBuilder;
     _userIdProvider = userIdProvider;
     _transportManager = transportManager;
     Number = _storage.GetValue(NumberKey, string.Empty);
     UserId = _storage.GetValue(UserIdKey, string.Empty);
 }
Exemple #20
0
        public void AsDatatable_WhenCalled_ReturnsResults()
        {
            var command = PrepareCommand();

            var commandBuilder = new CommandBuilder(command, DbConfig.Default);

            command.SetResultSet(Person.GetSingleResultSet());

            var result = commandBuilder.AsDataTable();

            Person.VerifyDataTable(result);
        }
Exemple #21
0
        public void Single_WhenCalled_ReturnsSingleItem()
        {
            var command = PrepareCommand();

            var commandBuilder = new CommandBuilder(command, DbConfig.Default);

            command.SetResultSet(Person.GetSingleResultSet());

            var result = commandBuilder.Single<Person>();

            Person.VerifyResult(result);
        }
Exemple #22
0
        public void AsEnumerableWithSelector_WhenCalled_ReturnsResults()
        {
            var command = PrepareCommand();

            var commandBuilder = new CommandBuilder(command, DbConfig.Default);

            command.SetResultSet(Person.GetSingleResultSet());

            var result = commandBuilder.AsEnumerable(d => (Person)Person.From(d)).ToList();

            Person.VerifySingleResultSet(result);
        }
Exemple #23
0
        public void AsEnumerableGeneric_WhenCalled_ReturnsResults()
        {
            var command = PrepareCommand();

            var commandBuilder = new CommandBuilder(command, DbConfig.Default);

            command.SetResultSet(Person.GetSingleResultSet());

            var result = commandBuilder.AsEnumerable<Person>().ToList();

            Person.VerifySingleResultSet(result);
        }
        public string GetCommand(uint entry, int itemId, int maxCount, int extendedCost)
        {
            var builder = new CommandBuilder("npc_vendor");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("item", itemId);
            builder.AddColumnValue("maxcount", maxCount);
            builder.AddColumnValue("incrtime", 0);
            builder.AddColumnValue("ExtendedCost", extendedCost);

            return builder.BuildInsert(true);
        }
        public string GetCommand(Race race, Class clss, int action, int button, ActionButtonType type)
        {
            var builder = new CommandBuilder("playercreateinfo_action");

            builder.AddColumnValue("race", (int)race);
            builder.AddColumnValue("class", (int)clss);
            builder.AddColumnValue("button", button);
            builder.AddColumnValue("action", action);
            builder.AddColumnValue("type", (int)type);

            return builder.BuildInsert(true);
        }
 public VoiceManager(ConnectionsService connectionsManager,
     ITranslationResource translationResource,
     IUserRepository usersRepository,
     IPushNotificationResource pushSender,
     CommandBuilder commandBuilder)
 {
     _commandBuilder = commandBuilder;
     _connectionsManager = connectionsManager;
     _translationResource = translationResource;
     _usersRepository = usersRepository;
     _pushSender = pushSender;
     _connectionsManager.CommandRecieved += _connectionsManager_OnCommandRecieved;
 }
Exemple #27
0
        public void Execute_WithObservable_ShouldReturnCorrectValue(
            CommandBuilder sut,
            IObservable<string> observable)
        {
            //arrange

            //act
            var actual = sut.Execute((object _) => observable);

            //assert

            actual.Should().BeOfType<ObservableCommandBuilderOptions<object, string>>()
                  .And.Match<ObservableCommandBuilderOptions<object, string>>(options => options.Observable(null) == observable);
        }
        public string GetCommand(uint entry, int spellId, int cost, int reqLevel, int reqSkill,
            int reqSkLvl)
        {
            var builder = new CommandBuilder("npc_trainer");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("spell", spellId);
            builder.AddColumnValue("spellcost", cost);
            builder.AddColumnValue("reqskill", reqSkill);
            builder.AddColumnValue("reqskillvalue", reqSkLvl);
            builder.AddColumnValue("reqlevel", reqLevel);

            return builder.BuildInsert(true);
        }
Exemple #29
0
        public void Execute_WithActionOfT_ShouldReturnCorrectValue(
            CommandBuilder sut,
            Action<string> action)
        {
            //arrange

            //act
            var actual = sut.Execute(action);

            //assert

            actual.Should().BeOfType<CommandBuilderOptions<string>>()
                  .And.Match<CommandBuilderOptions<string>>(options => options.Action == action);
        }
        public string GetCommand(Race race, Class clss, int map, int zone, Vector3 pos)
        {
            var builder = new CommandBuilder("playercreateinfo");

            builder.AddColumnValue("race", (int)race);
            builder.AddColumnValue("class", (int)clss);
            builder.AddColumnValue("map", map);
            builder.AddColumnValue("zone", zone);
            builder.AddColumnValue("position_x", pos.X);
            builder.AddColumnValue("position_y", pos.Y);
            builder.AddColumnValue("position_z", pos.Z);

            return builder.BuildInsert(true);
        }
 public void WriteSelectClause(CommandBuilder sql, IQueryableDocument mapping)
 {
     sql.Append("select id, version, type, timestamp as timestamp from ");
     sql.Append(_events.DatabaseSchemaName);
     sql.Append(".mt_streams");
 }
        /// <summary>
        /// Execute the operation asynchronously.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <param name="state">User defined state, usually used for logging.</param>
        /// <returns></returns>
        public override async Task <TCollection> ExecuteAsync(CancellationToken cancellationToken, object?state = null)
        {
            var result = new TCollection();

            await Prepare().ExecuteAsync(async cmd =>
            {
                using (var reader = (await cmd.ExecuteReaderAsync(cancellationToken).ConfigureAwait(false)).AsObjectConstructor <TObject>(Constructor, CommandBuilder.TryGetNonNullableColumns()))
                {
                    while (await reader.ReadAsync().ConfigureAwait(false))
                    {
                        result.Add(reader.Current !);
                    }
                    return(result.Count);
                }
            }, cancellationToken, state).ConfigureAwait(false);

            return(result);
        }
Exemple #33
0
 public void ConfigureCommand(CommandBuilder builder)
 {
     _linqQuery.ConfigureCommand(builder, _rowLimit);
 }
Exemple #34
0
        protected global::NUnit.Framework.Constraints.Constraint InstantiateConstraint()
        {
            EqualToConstraint ctr = null;

            if (ConstraintXml.GetCommand() != null)
            {
                var commandText      = ConstraintXml.GetCommand().CommandText;
                var connectionString = ConstraintXml.GetCommand().Connection.ConnectionString;
                IEnumerable <IQueryParameter>        parameters = null;
                IEnumerable <IQueryTemplateVariable> variables  = null;
                if (ConstraintXml.Query != null)
                {
                    parameters = ConstraintXml.Query.GetParameters();
                    variables  = ConstraintXml.Query.GetVariables();
                }

                var commandBuilder = new CommandBuilder();
                var cmd            = commandBuilder.Build(connectionString, commandText, parameters, variables);
                ctr = new EqualToConstraint(cmd);
            }
            else if (ConstraintXml.ResultSet != null)
            {
                if (!string.IsNullOrEmpty(ConstraintXml.ResultSet.File))
                {
                    Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, "ResultSet defined in external file!");
                    ctr = new EqualToConstraint(ConstraintXml.ResultSet.GetFile());
                }
                else if (ConstraintXml.ResultSet.Rows != null)
                {
                    Trace.WriteLineIf(NBiTraceSwitch.TraceVerbose, "ResultSet defined in embedded resultSet!");
                    ctr = new EqualToConstraint(ConstraintXml.ResultSet.Rows);
                }
            }

            if (ctr == null)
            {
                throw new ArgumentException();
            }

            //Manage settings for comparaison
            ResultSetComparisonSettings settings = new ResultSetComparisonSettings(
                ConstraintXml.KeysDef,
                ConstraintXml.ValuesDef,
                ToleranceFactory.BuildNumeric(ConstraintXml.Tolerance),
                ConstraintXml.ColumnsDef
                );

            ctr.Using(settings);

            if (ConstraintXml.ParallelizeQueries)
            {
                ctr = ctr.Parallel();
            }
            else
            {
                ctr = ctr.Sequential();
            }

            //Manage persistance
            //EqualToConstraint.PersistanceItems persi = 0;
            //if (ConstraintXml.GetCommand() != null)
            //    persi += (int)EqualToConstraint.PersistanceItems.actual;
            //if (SystemUnderTestXml is QueryXml)
            //    persi += (int)EqualToConstraint.PersistanceItems.expected;
            //if (!(persi==0 || ConstraintXml.Query==null || string.IsNullOrEmpty(ConstraintXml.Test.Name)))
            //    ctr.Persist(ConstraintXml.Persistance, persi, ConstraintXml.Test.Name);

            return(ctr);
        }
Exemple #35
0
 public void WriteSelectClause(CommandBuilder sql)
 {
     _parent.WriteSelectClause(sql);
 }
Exemple #36
0
        /// <summary>
        /// Gets the conflicts.
        /// </summary>
        /// <param name="obj">The obj.</param>
        /// <returns>A <see cref="Zonkey.Conflict"/> array.</returns>
        public Conflict[] GetConflicts(T obj)
        {
            ISavable objSV = obj as ISavable;

            if (objSV == null)
            {
                throw new ArgumentException("GetConflicts() is only supported on classes that implement Zonkey.ObjectModel.ISavable", "obj");
            }

            FieldValuesDictionary dbValues;
            DbCommand             command = CommandBuilder.GetRequeryCommand(objSV);

            using (DbDataReader reader = ExecuteReaderInternal(command, CommandBehavior.SingleRow))
            {
                if (reader.Read())
                {
                    dbValues = new FieldValuesDictionary(reader);
                }
                else
                {
                    throw new DataException("DataReader returned could not read a record to sync with.");
                }
            }

            List <Conflict> conflicts = new List <Conflict>();

            foreach (KeyValuePair <string, object> original in objSV.OriginalValues)
            {
                PropertyInfo pi = _objectType.GetProperty(original.Key);
                if (pi == null)
                {
                    continue;
                }

                IDataMapField field = _dataMap.GetFieldForProperty(pi);
                if ((field == null) || (field.AccessType == AccessType.ReadOnly))
                {
                    continue;
                }

                bool   valueMatch = false;
                object oDbValue;
                if (dbValues.TryGetValue(field.FieldName, out oDbValue))
                {
                    if (IsNullOrDbNull(original.Value) || IsNullOrDbNull(oDbValue))
                    {
                        valueMatch = (IsNullOrDbNull(original.Value) && IsNullOrDbNull(oDbValue));
                    }
                    else
                    {
                        Type propType = original.Value.GetType();
                        if (propType.IsGenericType)
                        {
                            // special case to handle nullable types
                            Type baseType = Nullable.GetUnderlyingType(propType);
                            if (baseType != null)
                            {
                                propType = baseType;
                            }
                        }

                        if (propType.IsEnum)
                        {
                            propType = Enum.GetUnderlyingType(propType);
                        }

                        if (!propType.IsAssignableFrom(oDbValue.GetType()))
                        {
                            if ((propType == typeof(Guid)) && (oDbValue is string))
                            {
                                if (!string.IsNullOrEmpty(oDbValue.ToString()))
                                {
                                    valueMatch = original.Value.Equals(new Guid(oDbValue.ToString()));
                                }
                            }
                            else
                            {
                                valueMatch = original.Value.Equals(Convert.ChangeType(oDbValue, propType));
                            }
                        }
                        else
                        {
                            valueMatch = original.Value.Equals(oDbValue);
                        }
                    }
                }
                else
                {
                    throw new DataException(string.Format("Missing field '{0}' from db sync query", field.FieldName));
                }

                if (!valueMatch)
                {
                    conflicts.Add(new Conflict(field.Property.Name, original.Value, oDbValue, field.Property.GetValue(objSV, null)));
                }
            }

            return(conflicts.ToArray());
        }
Exemple #37
0
 protected override void configure(CommandBuilder sql)
 {
     base.configure(sql);
     sql.Append(";\n");
 }
Exemple #38
0
 public void ConfigureCommand(CommandBuilder builder)
 {
     _query.ConfigureAggregate(builder, _operator);
 }
Exemple #39
0
        public void ConfigureCommand(CommandBuilder builder)
        {
            var param = builder.AddParameter(Id, _storage.IdType);

            builder.Append(Sql.Replace("?", ":" + param.ParameterName));
        }
 public when_add_flag_option()
 {
     builder = new ArgsParserBuilder().BeginDefaultCommand();
 }
Exemple #41
0
 protected override void configure(CommandBuilder builder)
 {
     throw new System.NotImplementedException();
 }
Exemple #42
0
        private IEnumerable <string> buildBinary(BinaryExpression[] binaryExpressions, CommandBuilder command)
        {
            if (!binaryExpressions.Any())
            {
                yield break;
            }

            var dictionary = new Dictionary <string, object>();

            // Are we querying directly againt the elements as you would for primitive types?
            if (binaryExpressions.All(x => x.Left is QuerySourceReferenceExpression && x.Right is ConstantExpression))
            {
                if (binaryExpressions.Any(x => x.NodeType != ExpressionType.Equal))
                {
                    throw new NotSupportedException("Only the equality operator is supported on Collection.Any(x => x) searches directly against the element");
                }

                var values = binaryExpressions.Select(x => x.Right.Value()).ToArray();
                if (_members.Length == 1)
                {
                    dictionary.Add(_members.Single().Name, values);
                }
                else
                {
                    throw new NotSupportedException();
                }
            }
            else
            {
                var search = new Dictionary <string, object>();
                binaryExpressions.Each(x => gatherSearch(x, search));

                if (_members.Length == 1)
                {
                    dictionary.Add(_members.Single().Name, new[] { search });
                }
                else
                {
                    var current = dictionary;

                    for (int i = 0; i < _members.Length - 1; i++)
                    {
                        var dict = new Dictionary <string, object>();
                        current.Add(_members[i].Name, dict);

                        current = dict;
                    }

                    current.Add(_members.Last().Name, new[] { search });
                }
            }

            var json  = _serializer.ToCleanJson(dictionary);
            var param = command.AddParameter(json);

            param.NpgsqlDbType = NpgsqlDbType.Jsonb;

            yield return($"d.data @> :{param.ParameterName}");
        }
Exemple #43
0
        private string buildSubQuery(SubQueryExpression subQuery, CommandBuilder command)
        {
            var contains = subQuery.QueryModel.ResultOperators.OfType <ContainsResultOperator>().FirstOrDefault();

            if (contains == null)
            {
                throw new NotSupportedException("Only the Contains() operator is supported on subqueries within Collection.Any() searches");
            }

            // build rhs of ?|
            var from = subQuery.QueryModel.MainFromClause.FromExpression as ConstantExpression;

            if (from == null || !supportedTypes.Any(supp => isListOrArrayOf(from.Type, supp)))
            {
                throwNotSupportedContains();
            }

            //TODO: this won't work for enumeration types. Only works with strings, so we have
            // to exactly map the ToString() like the underlying serializer would. Blech.
            var values = new List <string>();

            var enumerable = ((System.Collections.IEnumerable)from.Value);

            foreach (var obj in enumerable)
            {
                values.Add(obj.ToString());
            }

            var fromParam = command.AddParameter(values.ToArray());

            fromParam.NpgsqlDbType = NpgsqlDbType.Array | NpgsqlDbType.Text;

            // check/build lhs of ?|
            var item = contains.Item as QuerySourceReferenceExpression;

            if (item == null)
            {
                throwNotSupportedContains();
            }
            if (!supportedTypes.Any(supp => supp == item.ReferencedQuerySource.ItemType))
            {
                throwNotSupportedContains();
            }
            var itemSource = item.ReferencedQuerySource as MainFromClause;

            if (itemSource == null)
            {
                throwNotSupportedContains();
            }
            var member = itemSource.FromExpression as MemberExpression;

            if (member == null)
            {
                throwNotSupportedContains();
            }
            var visitor = new FindMembers();

            visitor.Visit(member);
            var members = visitor.Members;

            if (!members.Any())
            {
                throwNotSupportedContains();
            }
            var path = members.Select(m => m.Name).Join("'->'");

            return($"data->'{path}' ?| :{fromParam.ParameterName}");
        }
Exemple #44
0
 /// <summary>
 /// 执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。
 /// </summary>
 /// <param name="Command">CommandBuilder对象。</param>
 /// <returns></returns>
 public object ExecuteScalar(CommandBuilder Command)
 {
     return(DBA.ExecuteScalar(Command));
 }
Exemple #45
0
 public void ConfigureCommand(CommandBuilder builder, IMartenSession session)
 {
     var parameters = builder.AppendWithParameters(CommandText());
     ConfigureParameters(parameters, _document, session);
 }
Exemple #46
0
        /// <summary>
        /// 执行指定的查询命令,并返回数据集。
        /// </summary>
        /// <param name="Command">CommandBuilder对象。</param>
        /// <returns></returns>
        public T ExecuteQuery <T>(CommandBuilder Command) where T : DataTable
        {
            DataTable dt = DBA.ExecuteQuery <DataTable>(Command);

            return((T)dt);
        }
Exemple #47
0
 public void ConfigureCommand(CommandBuilder builder, IMartenSession session)
 {
     builder.Append("select 1");
 }
Exemple #48
0
 /// <summary>
 /// 执行指定的 SQL 命令,并返回受影响的记录数。
 /// </summary>
 /// <param name="Command">CommandBuilder对象。</param>
 /// <returns></returns>
 public int ExecuteNoneQuery(CommandBuilder Command)
 {
     return(DBA.ExecuteNoneQuery(Command));
 }
Exemple #49
0
 public void Apply(CommandBuilder builder)
 {
     builder.Append(Field.RawLocator);
     builder.Append(" is null");
 }
Exemple #50
0
 public void WriteSelectClause(CommandBuilder sql)
 {
     sql.Append(_selectClause);
 }
Exemple #51
0
        public NpgsqlCommand BuildCommand(FetchType fetchType)
        {
            var handler = toDiagnosticHandler(fetchType);

            return(CommandBuilder.ToCommand(Tenant, handler));
        }
 public abstract void ConfigureCommand(CommandBuilder builder, IMartenSession session);
 public void ConfigureCommand(CommandBuilder builder, IMartenSession session)
 {
     Inner.ConfigureCommand(builder, session);
 }
Exemple #54
0
 public void Register(CommandBuilder command)
 {
     command.Parameter("optional", ParameterType.Multiple);
 }
Exemple #55
0
 public NpgsqlCommand BuildCommand()
 {
     return(CommandBuilder.ToBatchCommand(_tenant, Calls));
 }
Exemple #56
0
 public void ConfigureCommand(CommandBuilder builder)
 {
 }
Exemple #57
0
 /// <summary>
 /// 执行指定的查询命令,并返回 <see cref="Wunion.DataAdapter.Kernel.DataCollection.SpeedDataTable"/> 数据集。
 /// </summary>
 /// <typeparam name="T"><see cref="Wunion.DataAdapter.Kernel.DataCollection.SpeedDataTable"/>类型参数。</typeparam>
 /// <param name="Command">CommandBuilder对象。</param>
 /// <returns></returns>
 public SpeedDataTable ExecuteQuery(CommandBuilder Command)
 {
     return(DBA.ExecuteQuery(Command));
 }
Exemple #58
0
 /// <summary>
 /// 执行指定的查询命令,并返回相应的数据读取器。
 /// </summary>
 /// <param name="Command">CommandBuilder对象。</param>
 /// <returns></returns>
 public IDataReader ExecuteReader(CommandBuilder Command)
 {
     return(DBA.ExecuteReader(Command));
 }
Exemple #59
0
 public void Register(CommandBuilder command)
 {
 }
 public Page(IMartenSession session)
 {
     _session = session;
     _builder = new CommandBuilder(_command);
 }