public SqlFDBImageDatasetImageClass(SqlFDB fdb, string dsname, int ID, Polygon polygon) { _fdb = fdb; _ID = ID; _polygon = polygon; _dsname = dsname; }
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; } } }
public void Dispose() { if (_fdb != null) { _fdb.Dispose(); _fdb = null; } }
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); }
public NetworkFeatureCursor(SqlFDB fdb, string networkName, List <IFeatureClass> edgeFcs, IFeatureClass nodeFc, IQueryFilter filter) { _fdb = fdb; _networkName = networkName; _edgeFcs = edgeFcs; _nodeFc = nodeFc; _filter = filter; }
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); }
public void Load(IPersistStream stream) { string connectionString = (string)stream.Load("connectionstring", ""); if (_fdb != null) { _fdb.Dispose(); _fdb = null; } this.ConnectionString = connectionString; this.Open(); }
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); } } } }
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()); }
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(); }
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); }
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(); } }
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); }
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 ); }
public SqlFDBDataset() { _addedLayers = new List <string>(); _fdb = new SqlFDB(); }
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); } }
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..."); }
public SqlFDBGraphTableAdapter(SqlFDB fdb, SqlFDBNetworkFeatureclass nfc) { _connString = fdb.ConnectionString; _nfc = nfc; _name = _nfc.Name; //name; }
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); }
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; } }
internal SqlFDBDataset(SqlFDB fdb, string dsname) : this() { ConnectionString = fdb.ConnectionString + ";dsname=" + dsname; Open(); }
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); }
public SqlFDBFeatureClass(SqlFDB fdb, IDataset dataset, GeometryDef geomDef, BinarySearchTree tree) : this(fdb, dataset, geomDef) { _searchTree = tree; }