コード例 #1
0
 public SqlFDBImageDatasetImageClass(SqlFDB fdb, string dsname, int ID, Polygon polygon)
 {
     _fdb     = fdb;
     _ID      = ID;
     _polygon = polygon;
     _dsname  = dsname;
 }
コード例 #2
0
        public SqlFDBImageCatalogClass(IRasterDataset dataset, SqlFDB fdb, IFeatureClass polygonsFC, ISpatialReference sRef, string imageSpace)
        {
            _dataset = dataset;
            _dsname  = dataset.DatasetName;
            _fdb     = fdb;
            _fc      = polygonsFC;
            calcPolygon(polygonsFC.Envelope);
            _sRef       = sRef;
            _imageSpace = (imageSpace == null) ? "" : imageSpace;

            if (_imageSpace != "" && imageSpace.ToLower() != "database")
            {
                try
                {
                    DirectoryInfo di = new DirectoryInfo(_imageSpace);
                    if (di.Exists)
                    {
                        _imageSpaceType = ImageSpaceType.FileSystem;
                    }
                    else
                    {
                        _imageSpaceType = ImageSpaceType.Invalid;
                    }
                }
                catch
                {
                    _imageSpaceType = ImageSpaceType.Invalid;
                }
            }
        }
コード例 #3
0
 public void Dispose()
 {
     if (_fdb != null)
     {
         _fdb.Dispose();
         _fdb = null;
     }
 }
コード例 #4
0
ファイル: SqlFDBFeatureClass.cs プロジェクト: jugstalt/gview5
        async static public Task <SqlFDBFeatureClass> Create(SqlFDB fdb, IDataset dataset, GeometryDef geomDef, BinarySearchTree tree)
        {
            var fc = await SqlFDBFeatureClass.Create(fdb, dataset, geomDef);

            fc._searchTree = tree;

            return(fc);
        }
コード例 #5
0
            public NetworkFeatureCursor(SqlFDB fdb, string networkName, List <IFeatureClass> edgeFcs, IFeatureClass nodeFc, IQueryFilter filter)
            {
                _fdb         = fdb;
                _networkName = networkName;

                _edgeFcs = edgeFcs;
                _nodeFc  = nodeFc;
                _filter  = filter;
            }
コード例 #6
0
        async static internal Task <SqlFDBDataset> Create(SqlFDB fdb, string dsname)
        {
            var ds = new SqlFDBDataset();

            await ds.SetConnectionString(fdb.ConnectionString + ";dsname=" + dsname);

            await ds.Open();

            return(ds);
        }
コード例 #7
0
ファイル: SqlFDBDataset.cs プロジェクト: am2222/gViewGisOS
        public void Load(IPersistStream stream)
        {
            string connectionString = (string)stream.Load("connectionstring", "");
            if (_fdb != null)
            {
                _fdb.Dispose();
                _fdb = null;
            }

            this.ConnectionString = connectionString;
            this.Open();
        }
コード例 #8
0
ファイル: FormChangeDataset.cs プロジェクト: jugstalt/gview5
        async private Task BuildList()
        {
            lstDatasets.Items.Clear();
            AccessFDB fdb = null;

            switch (_providerId)
            {
            case "mssql":
                fdb = new SqlFDB();
                break;

            case "postgres":
                fdb = new pgFDB();
                break;

            case "sqlite":
                fdb = new SQLiteFDB();
                break;
            }

            if (fdb == null)
            {
                return;
            }

            if (!await fdb.Open(this.ConnectionString))
            {
                MessageBox.Show(fdb.LastErrorMessage, "Error");
                return;
            }

            string[] dsnames = await fdb.DatasetNames();

            if (dsnames != null)
            {
                foreach (string dsname in dsnames)
                {
                    var isImageDatasetResult = await fdb.IsImageDataset(dsname);

                    ListViewItem item = new ListViewItem(
                        dsname, isImageDatasetResult.isImageDataset ? 1 : 0);

                    lstDatasets.Items.Add(item);

                    if (item.Text == _dsname)
                    {
                        lstDatasets.SelectedIndices.Add(lstDatasets.Items.Count - 1);
                    }
                }
            }
        }
コード例 #9
0
        async public Task <bool> LoadAsync(IPersistStream stream)
        {
            string connectionString = (string)stream.Load("connectionstring", "");

            if (_fdb != null)
            {
                _fdb.Dispose();
                _fdb = null;
            }

            await this.SetConnectionString(connectionString);

            return(await this.Open());
        }
コード例 #10
0
        public SqlFDBFeatureClass(SqlFDB fdb, IDataset dataset, GeometryDef geomDef)
        {
            _fdb = fdb;

            _dataset = dataset;
            _geomDef = (geomDef != null) ? geomDef : new GeometryDef();

            if (_geomDef != null && _geomDef.SpatialReference == null && dataset is IFeatureDataset)
            {
                _geomDef.SpatialReference = ((IFeatureDataset)dataset).SpatialReference;
            }

            m_fields = new Fields();
        }
コード例 #11
0
ファイル: SqlFDBFeatureClass.cs プロジェクト: jugstalt/gview5
        async static public Task <SqlFDBFeatureClass> Create(SqlFDB fdb, IDataset dataset, GeometryDef geomDef)
        {
            var fc = new SqlFDBFeatureClass();

            fc._fdb = fdb;

            fc._dataset = dataset;
            fc._geomDef = (geomDef != null) ? geomDef : new GeometryDef();

            if (fc._geomDef != null && fc._geomDef.SpatialReference == null && dataset is IFeatureDataset)
            {
                fc._geomDef.SpatialReference = await((IFeatureDataset)dataset).GetSpatialReference();
            }

            fc.m_fields = new Fields();

            return(fc);
        }
コード例 #12
0
ファイル: FormChangeDataset.cs プロジェクト: jugstalt/gview5
        async private void btnChangeConnectionString_Click(object sender, EventArgs e)
        {
            AccessFDB fdb = null;

            switch (_providerId)
            {
            case "mssql":
                fdb = new SqlFDB();
                break;

            case "postgres":
                fdb = new pgFDB();
                break;

            case "sqlite":
                fdb = new SQLiteFDB();
                break;
            }

            if (fdb == null)
            {
                return;
            }

            await fdb.Open(_connectionString);

            DbConnectionString dbConnStr = new DbConnectionString();

            dbConnStr.UseProviderInConnectionString = false;
            FormConnectionString dlg = (dbConnStr.TryFromConnectionString("mssql", fdb.ConnectionString) ?
                                        new FormConnectionString(dbConnStr) : new FormConnectionString());

            dlg.ProviderID = _providerId;
            dlg.UseProviderInConnectionString = false;

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                dbConnStr         = dlg.DbConnectionString;
                _connectionString = dbConnStr.ConnectionString;

                await BuildList();
            }
        }
コード例 #13
0
        async public Task <bool> SetConnectionString(string value)
        {
            _connStr = value;
            if (value == null)
            {
                return(false);
            }

            while (_connStr.IndexOf(";;") != -1)
            {
                _connStr = _connStr.Replace(";;", ";");
            }

            _dsname = ConfigTextStream.ExtractValue(value, "dsname");
            _addedLayers.Clear();
            foreach (string layername in ConfigTextStream.ExtractValue(value, "layers").Split('@'))
            {
                if (layername == "")
                {
                    continue;
                }
                if (_addedLayers.IndexOf(layername) != -1)
                {
                    continue;
                }
                _addedLayers.Add(layername);
            }
            if (_fdb == null)
            {
                _fdb = new SqlFDB();
            }

            _fdb.DatasetRenamed      += new gView.DataSources.Fdb.MSAccess.AccessFDB.DatasetRenamedEventHandler(SqlFDB_DatasetRenamed);
            _fdb.FeatureClassRenamed += new gView.DataSources.Fdb.MSAccess.AccessFDB.FeatureClassRenamedEventHandler(SqlFDB_FeatureClassRenamed);
            _fdb.TableAltered        += new gView.DataSources.Fdb.MSAccess.AccessFDB.AlterTableEventHandler(SqlFDB_TableAltered);
            await _fdb.Open(_connStr);

            return(true);
        }
コード例 #14
0
        public SqlFDBNetworkFeatureclass(SqlFDB fdb, IDataset dataset, string name, GeometryDef geomDef)
        {
            _fdb  = fdb;
            _fcid = _fdb.FeatureClassID(_fdb.DatasetID(dataset.DatasetName), name);

            _dataset = dataset;
            _geomDef = (geomDef != null) ? geomDef : new GeometryDef();

            if (_geomDef != null && _geomDef.SpatialReference == null && dataset is IFeatureDataset)
            {
                _geomDef.SpatialReference = ((IFeatureDataset)dataset).SpatialReference;
            }

            _fields = new Fields();

            _name = _aliasname = name;

            IDatasetElement element = _dataset[_name + "_Nodes"];

            if (element != null)
            {
                _nodeFc = element.Class as IFeatureClass;
            }

            element = _dataset[_name + "_ComplexEdges"];
            if (element != null && element.Class is IFeatureClass)
            {
                _edgeFcs.Add(-1, (IFeatureClass)element.Class);
            }

            DataTable tab = _fdb.Select("FCID", "FDB_NetworkClasses", "NetworkId=" + _fcid);

            if (tab != null && tab.Rows.Count > 0)
            {
                StringBuilder where = new StringBuilder();
                where.Append("GeometryType=" + ((int)geometryType.Polyline).ToString() + " AND ID in(");
                for (int i = 0; i < tab.Rows.Count; i++)
                {
                    if (i > 0)
                    {
                        where.Append(",");
                    }
                    where.Append(tab.Rows[i]["FCID"].ToString());
                }
                where.Append(")");

                tab = _fdb.Select("ID,Name", "FDB_FeatureClasses", where.ToString());
                if (tab != null)
                {
                    foreach (DataRow row in tab.Rows)
                    {
                        element = _dataset[row["Name"].ToString()];
                        if (element != null && element.Class is IFeatureClass)
                        {
                            _edgeFcs.Add((int)row["ID"], element.Class as IFeatureClass);
                        }
                    }
                }
            }

            _weights = _fdb.GraphWeights(name);
            Dictionary <Guid, string> weightTableNames             = null;
            Dictionary <Guid, GraphWeightDataType> weightDataTypes = null;

            if (_weights != null && _weights.Count > 0)
            {
                weightTableNames = new Dictionary <Guid, string>();
                weightDataTypes  = new Dictionary <Guid, GraphWeightDataType>();
                foreach (IGraphWeight weight in _weights)
                {
                    if (weight == null)
                    {
                        continue;
                    }

                    weightTableNames.Add(weight.Guid, _fdb.TableName(_name + "_Weights_" + weight.Guid.ToString("N").ToLower()));
                    weightDataTypes.Add(weight.Guid, weight.DataType);
                }
            }
            _pageManager = new NetworkObjectSerializer.PageManager(
                System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlClient"),
                _fdb.ConnectionString, _name,
                _fdb.TableName("FC_" + _name),
                _fdb.TableName(_name + "_Edges"),
                _fdb.TableName("FC_" + name + "_Nodes"),
                weightTableNames, weightDataTypes, _fdb
                );
        }
コード例 #15
0
 public SqlFDBDataset()
 {
     _addedLayers = new List <string>();
     _fdb         = new SqlFDB();
 }
コード例 #16
0
        static int Main(string[] args)
        {
            string server = "", database = "", uid = "", pwd = "", dataset = "", imageSpace = "database";
            string connectionString = "";
            bool   delExisting      = true;
            bool   imagedataset     = false;

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i] == "-server")
                {
                    server = args[++i];
                }
                if (args[i] == "-uid")
                {
                    uid = args[++i];
                }
                if (args[i] == "-pwd")
                {
                    pwd = args[++i];
                }
                if (args[i] == "-database")
                {
                    database = args[++i];
                }
                if (args[i] == "-ds")
                {
                    dataset = args[++i];
                }
                if (args[i] == "-imagedataset")
                {
                    imagedataset = true;
                }
                if (args[i] == "-imagespace")
                {
                    imageSpace = args[++i];
                }
                if (args[i] == "-connectionstring")
                {
                    connectionString = args[++i];
                }
            }

            if (((server == "" && database == "") && connectionString == "") || dataset == "")
            {
                Console.WriteLine("USAGE:");
                Console.WriteLine("gView.Cmd.CreateSqlFDBDataset -server <Filename> -database <Database> OR -connectionstring <ConnectionString>");
                Console.WriteLine("                    -ds <Datasetname>");
                Console.WriteLine("                   [-uid <User> -pwd <Password> -imagedataset -imagespace <Image Space Directory (Database)>]");
                return(1);
            }

            try
            {
                if (connectionString == "")
                {
                    connectionString = "server=" + server + ";database=" + database;
                    if (uid != "")
                    {
                        connectionString += ";uid=" + uid + ";pwd=" + pwd;
                    }
                    else
                    {
                        connectionString += ";Trusted_Connection=True";
                    }
                }
                SqlFDB fdb = new SqlFDB();
                if (!fdb.Open(connectionString))
                {
                    Console.WriteLine("\n\nERROR: " + fdb.lastErrorMsg);
                    return(1);
                }

                //SpatialReference sRef = new SpatialReference();
                ISpatialIndexDef sIndexDef = new gViewSpatialIndexDef();

                if (imagedataset)
                {
                    if (fdb.CreateImageDataset(dataset, null, sIndexDef, imageSpace, null) < 1)
                    {
                        fdb.Dispose();
                        Console.WriteLine("\n\nERROR: " + fdb.lastErrorMsg);
                        return(1);
                    }
                }
                else
                {
                    if (fdb.CreateDataset(dataset, null, sIndexDef) < 1)
                    {
                        fdb.Dispose();
                        Console.WriteLine("\n\nERROR: " + fdb.lastErrorMsg);
                        return(1);
                    }
                }

                fdb.Dispose();
                Console.WriteLine(server + @"\" + database + ": Dataset " + dataset + " created...");

                return(0);
            }
            catch (Exception ex)
            {
                Console.WriteLine("\n\nERROR: " + ex.Message);

                return(1);
            }
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: jugstalt/gViewGisOS
        static void Main(string[] args)
        {
            #region Parse Parameters
            for (int i = 0; i < args.Length; i++)
            {
                switch (args[i])
                {
                case "-add":
                    if (job != jobs.unknown)
                    {
                        Console.WriteLine("Can't do more than one job. Run programm twice...");
                        return;
                    }
                    job = jobs.add;
                    break;

                case "-clean":
                    if (job != jobs.unknown)
                    {
                        Console.WriteLine("Can't do more than one job. Run programm twice...");
                        return;
                    }
                    job = jobs.removeUnexisting;
                    break;

                case "-truncate":
                    if (job != jobs.unknown)
                    {
                        Usage();
                        Console.WriteLine("Can't do more than one job. Run programm twice...");
                        return;
                    }
                    job = jobs.truncate;
                    break;

                case "-s":
                    connectinString = args[++i];
                    break;

                case "-db":
                    dbType = args[++i].ToLower();
                    break;

                case "-provider":
                    provider = args[++i].ToLower();
                    break;

                case "-fn":
                    if (rootPath != String.Empty)
                    {
                        Usage();
                        Console.WriteLine("Filename OR Rootdirectory...");
                        return;
                    }
                    fileName = args[++i];
                    break;

                case "-rd":
                    if (fileName != String.Empty)
                    {
                        Usage();
                        Console.WriteLine("Filename OR Rootdirectory...");
                        return;
                    }
                    rootPath = args[++i];
                    break;

                case "-f":
                    Filters = args[++i];
                    break;
                }
            }
            #endregion

            #region Check Parameters
            if (connectinString == String.Empty)
            {
                Usage();
                Console.WriteLine("No connection string...");
                return;
            }
            switch (job)
            {
            case jobs.removeUnexisting:
            case jobs.truncate:
                break;

            case jobs.add:
                if (fileName == String.Empty &&
                    (rootPath == String.Empty || Filters == String.Empty))
                {
                    Usage();
                    Console.WriteLine("No file or rootdirectory and filter defined...");
                    return;
                }
                break;

            case jobs.unknown:
                Usage();
                Console.WriteLine("No job defined...");
                return;
            }
            #endregion

            DateTime dt = DateTime.Now;

            string mdb     = ConfigTextStream.ExtractValue(connectinString, "mdb");
            string dsname  = ConfigTextStream.ExtractValue(connectinString, "dsname");
            string connStr = ConfigTextStream.RemoveValue(connectinString, "dsname");

            IFeatureDataset ds = null;
            if (mdb != String.Empty)
            {
                AccessFDB fdb = new AccessFDB();
                fdb.Open(connStr);
                IFeatureDataset dataset = fdb[dsname];
                if (dataset == null)
                {
                    Console.WriteLine("Error opening dataset: " + fdb.lastErrorMsg);
                    return;
                }
                //dataset.ConnectionString = connectinString;
                if (!dataset.Open())
                {
                    Console.WriteLine("Error opening dataset: " + dataset.lastErrorMsg);
                    return;
                }
                ds = dataset;
            }
            else if (dbType == "sql")
            {
                SqlFDB fdb = new SqlFDB();
                fdb.Open(connStr);
                IFeatureDataset dataset = fdb[dsname];
                if (dataset == null)
                {
                    Console.WriteLine("Error opening dataset: " + fdb.lastErrorMsg);
                    return;
                }
                //dataset.ConnectionString = connectinString;
                if (!dataset.Open())
                {
                    Console.WriteLine("Error opening dataset: " + dataset.lastErrorMsg);
                    return;
                }
                ds = dataset;
            }
            else if (dbType == "postgres")
            {
                pgFDB fdb = new pgFDB();
                fdb.Open(connStr);
                IFeatureDataset dataset = fdb[dsname];
                if (dataset == null)
                {
                    Console.WriteLine("Error opening dataset: " + fdb.lastErrorMsg);
                    return;
                }
                //dataset.ConnectionString = connectinString;
                if (!dataset.Open())
                {
                    Console.WriteLine("Error opening dataset: " + dataset.lastErrorMsg);
                    return;
                }
                ds = dataset;
            }
            else if (dbType == "sqlite")
            {
                SQLiteFDB fdb = new SQLiteFDB();
                fdb.Open(connStr);
                IFeatureDataset dataset = fdb[dsname];
                if (dataset == null)
                {
                    Console.WriteLine("Error opening dataset: " + fdb.lastErrorMsg);
                    return;
                }
                //dataset.ConnectionString = connectinString;
                if (!dataset.Open())
                {
                    Console.WriteLine("Error opening dataset: " + dataset.lastErrorMsg);
                    return;
                }
                ds = dataset;
            }

            IRasterFileDataset rds = null;
            if (provider == "gdal")
            {
                rds = PlugInManager.Create(new Guid("43DFABF1-3D19-438c-84DA-F8BA0B266592")) as IRasterFileDataset;
            }
            else if (provider == "raster")
            {
                rds = PlugInManager.Create(new Guid("D4812641-3F53-48eb-A66C-FC0203980C79")) as IRasterFileDataset;
            }

            Dictionary <string, Guid> providers = new Dictionary <string, Guid>();
            if (rds != null)
            {
                foreach (string format in rds.SupportedFileFilter.Split('|'))
                {
                    string extension = format;

                    int pos = format.LastIndexOf(".");
                    if (pos > 0)
                    {
                        extension = format.Substring(pos, format.Length - pos);
                    }

                    providers.Add(extension, PlugInManager.PlugInID(rds));
                    Console.WriteLine("Provider " + extension + ": " + rds.ToString() + " {" + PlugInManager.PlugInID(rds).ToString() + "}");
                }
            }
            if (providers.Count == 0)
            {
                providers = null;
            }

            switch (job)
            {
            case jobs.truncate:
                Truncate(ds, dsname + "_IMAGE_POLYGONS");
                break;

            case jobs.removeUnexisting:
                RemoveUnexisting(ds);
                CalculateExtent(ds);
                break;

            case jobs.add:
                if (fileName != String.Empty)
                {
                    if (!ImportFiles(ds, fileName.Split(';'), providers))
                    {
                        if (!continueOnError)
                        {
                            return;
                        }
                    }
                }
                else if (rootPath != String.Empty && Filters != String.Empty)
                {
                    if (!ImportDirectory(ds, new DirectoryInfo(rootPath), Filters.Split(';'), providers))
                    {
                        if (!continueOnError)
                        {
                            return;
                        }
                    }
                }
                CalculateExtent(ds);
                break;
            }
            Console.WriteLine("\n" + ((TimeSpan)(DateTime.Now - dt)).TotalSeconds + "s");
            Console.WriteLine("done...");
        }
コード例 #18
0
 public SqlFDBGraphTableAdapter(SqlFDB fdb, SqlFDBNetworkFeatureclass nfc)
 {
     _connString = fdb.ConnectionString;
     _nfc        = nfc;
     _name       = _nfc.Name; //name;
 }
コード例 #19
0
        async static public Task <SqlFDBNetworkFeatureclass> Create(SqlFDB fdb, IDataset dataset, string name, GeometryDef geomDef)
        {
            var fc = new SqlFDBNetworkFeatureclass();

            fc._fdb  = fdb;
            fc._fcid = await fc._fdb.FeatureClassID(await fc._fdb.DatasetID(dataset.DatasetName), name);

            fc._dataset = dataset;
            fc._geomDef = (geomDef != null) ? geomDef : new GeometryDef();

            if (fc._geomDef != null && fc._geomDef.SpatialReference == null && dataset is IFeatureDataset)
            {
                fc._geomDef.SpatialReference = await((IFeatureDataset)dataset).GetSpatialReference();
            }

            fc._fields = new Fields();

            fc._name = fc._aliasname = name;

            IDatasetElement element = await fc._dataset.Element(fc._name + "_Nodes");

            if (element != null)
            {
                fc._nodeFc = element.Class as IFeatureClass;
            }

            element = await fc._dataset.Element(fc._name + "_ComplexEdges");

            if (element != null && element.Class is IFeatureClass)
            {
                fc._edgeFcs.Add(-1, (IFeatureClass)element.Class);
            }

            DataTable tab = await fc._fdb.Select("FCID", "FDB_NetworkClasses", "NetworkId=" + fc._fcid);

            if (tab != null && tab.Rows.Count > 0)
            {
                StringBuilder where = new StringBuilder();
                where.Append("GeometryType=" + ((int)geometryType.Polyline).ToString() + " AND ID in(");
                for (int i = 0; i < tab.Rows.Count; i++)
                {
                    if (i > 0)
                    {
                        where.Append(",");
                    }
                    where.Append(tab.Rows[i]["FCID"].ToString());
                }
                where.Append(")");

                tab = await fc._fdb.Select("ID,Name", "FDB_FeatureClasses", where.ToString());

                if (tab != null)
                {
                    foreach (DataRow row in tab.Rows)
                    {
                        element = await fc._dataset.Element(row["Name"].ToString());

                        if (element != null && element.Class is IFeatureClass)
                        {
                            fc._edgeFcs.Add((int)row["ID"], element.Class as IFeatureClass);
                        }
                    }
                }
            }

            fc._weights = await fc._fdb.GraphWeights(name);

            Dictionary <Guid, string> weightTableNames             = null;
            Dictionary <Guid, GraphWeightDataType> weightDataTypes = null;

            if (fc._weights != null && fc._weights.Count > 0)
            {
                weightTableNames = new Dictionary <Guid, string>();
                weightDataTypes  = new Dictionary <Guid, GraphWeightDataType>();
                foreach (IGraphWeight weight in fc._weights)
                {
                    if (weight == null)
                    {
                        continue;
                    }

                    weightTableNames.Add(weight.Guid, fc._fdb.TableName(fc._name + "_Weights_" + weight.Guid.ToString("N").ToLower()));
                    weightDataTypes.Add(weight.Guid, weight.DataType);
                }
            }
            fc._pageManager = new NetworkObjectSerializer.PageManager(
                System.Data.SqlClient.SqlClientFactory.Instance,
                fc._fdb.ConnectionString, fc._name,
                fc._fdb.TableName("FC_" + fc._name),
                fc._fdb.TableName(fc._name + "_Edges"),
                fc._fdb.TableName("FC_" + name + "_Nodes"),
                weightTableNames, weightDataTypes, fc._fdb
                );

            return(fc);
        }
コード例 #20
0
        async private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;

                SqlFDB fdb = new SqlFDB();

                if (CreateFromMDF && MdfFilename != String.Empty)
                {
                    await fdb.Open(ConnectionString);

                    if (!fdb.Create(txtDatabase.Text, MdfFilename))
                    {
                        MessageBox.Show(fdb.LastErrorMessage, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
                else
                {
                    await fdb.Open(ConnectionString);

                    UserData parameters = _advancedSettings.ToUserData();
                    if (btnOnlyRepository.Checked)
                    {
                        parameters.SetUserData("CreateDatabase", false);
                    }

                    if (!fdb.Create(txtDatabase.Text, parameters))
                    {
                        MessageBox.Show(fdb.LastErrorMessage, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    if (chkCreateReplicationDatamodel.Checked == true)
                    {
                        if (!await gView.Framework.Offline.Replication.CreateRelicationModel(fdb))
                        {
                            MessageBox.Show("RepliCreateRelicationModel failed:\n", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }

                if (chkCreateConnection.Checked)
                {
                    string           connStr = FullConnectionString;
                    ConfigTextStream stream  = new ConfigTextStream("sqlfdb_connections", true, true);
                    string           id      = txtObject.Text;
                    stream.Write(FullConnectionString, ref id);
                    stream.Close();

                    _resultExObject = new SqlFDBExplorerObject(null, id, FullConnectionString);
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("FATAL ERROR: " + ex.Message);
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }
コード例 #21
0
ファイル: SqlFDBDataset.cs プロジェクト: jugstalt/gViewGisOS
 internal SqlFDBDataset(SqlFDB fdb, string dsname)
     : this()
 {
     ConnectionString = fdb.ConnectionString + ";dsname=" + dsname;
     Open();
 }
コード例 #22
0
        static int Main(string[] args)
        {
            string   server = "", uid = "", pwd = "", database = "", mdf = String.Empty;
            UserData userData = new UserData();

            for (int i = 0; i < args.Length - 1; i++)
            {
                if (args[i] == "-server")
                {
                    server = args[++i];
                }
                if (args[i] == "-uid")
                {
                    uid = args[++i];
                }
                if (args[i] == "-pwd")
                {
                    pwd = args[++i];
                }
                if (args[i] == "-database")
                {
                    database = args[++i];
                }
                if (args[i] == "-mdf")
                {
                    mdf = args[++i];
                }
                if (args[i].StartsWith("-_"))
                {
                    userData.SetUserData(args[i].Substring(2, args[i].Length - 2), args[++i]);
                }
            }

            if (server == "" || database == "")
            {
                Console.WriteLine("USAGE:");
                Console.WriteLine("gView.Cmd.CreateSqlFDB -server <SQL Server Instance>");
                Console.WriteLine("             -database <Database Name>");
                Console.WriteLine("            [-uid <User>]");
                Console.WriteLine("            [-pwd <Password>]");
                Console.WriteLine("            [-mdf <mdf_file_path>");
                Console.WriteLine("            [-_Parametername <parameter>]");
                Console.WriteLine("Example:");
                Console.WriteLine("CreateSqlFDB -server localhost -database NEW_FDB -_filename c:\\myDatabase.mdf -_size 300 -_filegrowth 50");
                return(1);
            }

            // Path setzen, damit in fdb.Create die createdatabase.sql gefunden wird...

            /*
             * if (SystemVariables.RegistryApplicationDirectory != "")
             * {
             *  SystemVariables.ApplicationDirectory = SystemVariables.RegistryApplicationDirectory;
             * }
             */

            string connectionString = "server=" + server;

            if (uid != "")
            {
                connectionString += ";uid=" + uid + ";pwd=" + pwd;
            }
            else
            {
                connectionString += ";Trusted_Connection=True";
            }

            SqlFDB fdb = new SqlFDB();

            if (!fdb.Open(connectionString))
            {
                Console.WriteLine("ERROR :" + fdb.lastErrorMsg);
                fdb.Dispose();
                return(1);
            }

            if (!String.IsNullOrEmpty(mdf))
            {
                if (!fdb.Create(database, mdf))
                {
                    Console.WriteLine("ERROR :" + fdb.lastErrorMsg);
                    fdb.Dispose();
                    return(1);
                }
            }
            else
            {
                if (userData.UserDataTypes.Length > 0)
                {
                    Console.WriteLine("CREATE DATABASE " + database + " ON PRIMARY (NAME=" + database + ",");
                    foreach (string type in userData.UserDataTypes)
                    {
                        Console.WriteLine(type + "=");
                        if (type.ToLower() == "filename")
                        {
                            Console.WriteLine("'" + userData.GetUserData(type) + "'");
                        }
                        else
                        {
                            Console.WriteLine(userData.GetUserData(type));
                        }
                    }
                    Console.WriteLine(")");
                }
                if (!fdb.Create(database, userData))
                {
                    Console.WriteLine("ERROR :" + fdb.lastErrorMsg);
                    fdb.Dispose();
                    return(1);
                }
            }
            fdb.Dispose();
            Console.WriteLine("...done");

            return(0);
        }
コード例 #23
0
 public SqlFDBFeatureClass(SqlFDB fdb, IDataset dataset, GeometryDef geomDef, BinarySearchTree tree)
     : this(fdb, dataset, geomDef)
 {
     _searchTree = tree;
 }