Esempio n. 1
0
        public void ShouldSplitObjectNotation_08()
        {
            //Arrange
            string notation = "object";

            //Act
            StatementResolveHelper.SplitObjectNotationIntoSingleParts(notation, out string serverName, out string databaseName, out string databaseSchema, out string databaseObjectName);

            //Assert
            Assert.Null(serverName);
            Assert.Null(databaseName);
            Assert.Null(databaseSchema);
            Assert.Equal("object", databaseObjectName);
        }
        internal DatabaseObject(string notation, CompilerContext context, DatabaseObjectType type, bool addStdObjects = true)
        {
            StatementResolveHelper.SplitObjectNotationIntoSingleParts(notation, out string serverName, out string databaseName, out string databaseSchema, out string databaseObjectName);

            Server   = serverName;
            Database = databaseName;

            if (serverName == null && addStdObjects)
            {
                Server = context.CurrentServerContext;
            }

            if (databaseName == null && addStdObjects)
            {
                Database = context.CurrentDbContext;
            }

            if (databaseSchema == null && addStdObjects)
            {
                Schema = InternalConstants.UNRELATED_SCHEMA_NAME;
            }
            else
            {
                Schema = databaseSchema;
            }

            if (databaseObjectName == null)
            {
                throw new InvalidSqlException("Can't construct a database object without identifier");
            }
            else
            {
                Name = databaseObjectName;
            }

            Expressions = null;
        }