public void T11_JD_Test()
        {
            PostGisProvider <int> search = new PostGisProvider <Int32>(_geometryFactory,
                                                                       connectionString, "public",
                                                                       "vw_osm_germany_line", "osm_id", "way");

            BinaryExpression binaryExpression =
                new BinaryExpression(new PropertyNameExpression("z_order"),
                                     BinaryOperator.Equals, new LiteralExpression <int>(0));

            ProviderPropertiesExpression providerProps =
                new ProviderPropertiesExpression(
                    new ProviderPropertyExpression[] {});


            ProviderQueryExpression prov = new ProviderQueryExpression(null as ProviderPropertiesExpression,
                                                                       new AllAttributesExpression(), binaryExpression);

            object obj = search.ExecuteQuery(prov);

            Assert.IsNotNull(obj);
            PostGisFeatureDataReader sfdr = obj as PostGisFeatureDataReader;

            Assert.IsNotNull(sfdr);
            Int64 numRows = 0;

            while (sfdr.Read())
            {
                numRows++;
            }
            Assert.IsTrue(numRows > 1);

            providerProps =
                new ProviderPropertiesExpression(
                    new ProviderPropertyExpression[]
            {
                //new OrderByCollectionExpression(
                //    new OrderByExpression("z_order", SortOrder.Descending)),
                new DataPageSizeExpression(10),
                new DataPageNumberExpression(5)
            });
            AttributesProjectionExpression ape =
                new AttributesProjectionExpression(new[] { "osm_id", "name", "z_order", "way" });

            prov = new ProviderQueryExpression(providerProps, ape, null);

            sfdr = search.ExecuteQuery(prov) as PostGisFeatureDataReader;
            Assert.IsNotNull(sfdr);
            numRows = 0;
            while (sfdr.Read())
            {
                numRows++;
            }
            Assert.AreEqual(10, numRows);
            Debug.WriteLine("\r\n*** T11 passed!");
        }
Exemple #2
0
        public override Int32 GetFeatureCount()
        {
            AttributesProjectionExpression attrs = new AttributesProjectionExpression(new[] { "Count(*)" });

            using (IDbConnection conn = DbUtility.CreateConnection(ConnectionString))
            {
                using (
                    IDbCommand cmd =
                        PrepareSelectCommand(DefinitionQuery == null
                                                 ? (Expression)attrs
                                                 : new QueryExpression(attrs, DefinitionQuery)))
                {
                    cmd.Connection = conn;
                    conn.Open();
                    return((Int32)cmd.ExecuteScalar());
                }
            }
        }
        protected virtual void VisitAttributeProjectionExpression(AttributesProjectionExpression exp)
        {
            if (exp == null)
            {
                return;
            }

            foreach (PropertyNameExpression pn in exp.Attributes.Collection)
            {
                InternalProjectedColumns.Add(pn.PropertyName);
                //InternalProjectedColumns.Add(
                //    string.Compare(pn.PropertyName, Provider.GeometryColumn, StringComparison.InvariantCultureIgnoreCase) ==
                //    0
                //        ? string.Format(Provider.GeometryColumnConversionFormatString,
                //                        Provider.QualifyColumnName(pn.PropertyName))
                //        : Provider.QualifyColumnName(pn.PropertyName));
            }
        }
        public void T11_JD_Test()
        {
            //return;
            var search = new SpatiaLite2Provider(_geometryFactory,
                                                 @"Data Source=C:\VENUS\CodePlex\sharpMap\SharpMap\TestData\VRS2386_V11.sqlite", "main",
                                                 "regions", "OID", "XGeometryX");

            //search.SpatiaLiteIndexType = SpatiaLite2_IndexType.MBRCache;

            var binaryExpression =
                new BinaryExpression(new PropertyNameExpression("VHG5"),
                                     BinaryOperator.GreaterThan, new LiteralExpression <int>(6));

            var columns = new string[] { "Einwohner" };

            search.DefaultProviderProperties =
                new ProviderPropertiesExpression(
                    new ProviderPropertyExpression[] { new AttributesCollectionExpression(columns) }
                    );

            var prov = new ProviderQueryExpression(
                (ProviderPropertiesExpression)null,
                new AllAttributesExpression(),
                binaryExpression);

            object obj = search.ExecuteQuery(prov);

            Assert.IsNotNull(obj);
            SharpMap.Data.Providers.Db.SpatialDbFeatureDataReader sfdr = obj as SharpMap.Data.Providers.Db.SpatialDbFeatureDataReader;
            Assert.IsNotNull(sfdr);
            Int64 numRows = 0;

            DateTime start = DateTime.Now;

            while (sfdr.Read())
            {
                numRows++;
            }
            DateTime end = DateTime.Now;

            System.Diagnostics.Debug.WriteLine(end.Subtract(start).ToString());

            search.DefaultProviderProperties = null;

            obj  = search.ExecuteQuery(prov);
            sfdr = obj as SharpMap.Data.Providers.Db.SpatialDbFeatureDataReader;
            Assert.IsTrue(numRows > 1);
            start = DateTime.Now;
            while (sfdr.Read())
            {
                numRows++;
            }
            end = DateTime.Now;
            System.Diagnostics.Debug.WriteLine(end.Subtract(start).ToString());

            var providerProps =
                new ProviderPropertiesExpression(
                    new ProviderPropertyExpression[]
            {
                new OrderByCollectionExpression(
                    new OrderByExpression("Einwohner", System.Data.SqlClient.SortOrder.Descending)),
                new DataPageSizeExpression(10),
                new DataPageNumberExpression(5)
            });
            var ape = new AttributesProjectionExpression(new String[] { "OID", "Einwohner", "Erwerbstätige", "Beschäftigte" });

            prov = new ProviderQueryExpression(providerProps, ape, null);

            sfdr = search.ExecuteQuery(prov) as SharpMap.Data.Providers.Db.SpatialDbFeatureDataReader;
            Assert.IsNotNull(sfdr);
            numRows = 0;
            while (sfdr.Read())
            {
                numRows++;
            }
            Assert.AreEqual(10, numRows);
            Assert.AreEqual(4, sfdr.FieldCount);
        }