public Task <IExplorerObject> CreateExplorerObject(IExplorerObject parentExObject) { if (!CanCreate(parentExObject)) { return(null); } SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "New SQLite Feature Database..."; dlg.Filter = "SQLite DB(*.fdb)|*.fdb"; dlg.InitialDirectory = parentExObject.FullName; dlg.FileName = "database1.fdb"; if (dlg.ShowDialog() == DialogResult.OK) { SQLiteFDB fdb = new SQLiteFDB(); if (!fdb.Create(dlg.FileName)) { MessageBox.Show(fdb.LastErrorMessage, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return(Task.FromResult <IExplorerObject>(null)); } _filename = dlg.FileName; return(Task.FromResult <IExplorerObject>(this)); } return(null); }
public IExplorerObject CreateExplorerObject(IExplorerObject parentExObject) { if (!CanCreate(parentExObject)) { return(null); } SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "New SQLite Feature Database..."; dlg.Filter = "SQLite DB(*.fdb)|*.fdb"; dlg.FileName = parentExObject.FullName + @"\database1.fdb"; if (dlg.ShowDialog() == DialogResult.OK) { SQLiteFDB fdb = new SQLiteFDB(); if (!fdb.Create(dlg.FileName)) { MessageBox.Show(fdb.lastErrorMsg, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } _filename = dlg.FileName; return(this); } return(null); }
public SQLiteFDBImageCatalogClass(IRasterDataset dataset, SQLiteFDB fdb, IFeatureClass polygonsFC, ISpatialReference sRef, string imageSpace) { _dataset = dataset; _dsname = dataset.DatasetName; _fdb = fdb; _fc = polygonsFC; calcPolygon(polygonsFC.Envelope); _sRef = sRef; _imageSpace = (imageSpace == null) ? String.Empty : imageSpace; if (_imageSpace != String.Empty && imageSpace.ToLower() != "database") { try { DirectoryInfo di = new DirectoryInfo(_imageSpace); if (di.Exists) { _imageSpaceType = ImageSpaceType.FileSystem; } else { _imageSpaceType = ImageSpaceType.Invalid; } } catch { _imageSpaceType = ImageSpaceType.Invalid; } } }
public SQLiteFDBImageDatasetImageClass(SQLiteFDB fdb, string dsname, int ID, Polygon polygon) { _fdb = fdb; _ID = ID; _polygon = polygon; _dsname = dsname; }
async public Task <IExplorerFileObject> CreateInstance(IExplorerObject parent, string filename) { string f = filename.ToLower(); if (!f.ToLower().EndsWith(".fdb")) { return(null); } try { if (!(new FileInfo(f).Exists)) { return(null); } using (SQLiteFDB fdb = new SQLiteFDB()) { if (!await fdb.Open(f) || !await fdb.IsValidAccessFDB()) { return(null); } } } catch { return(null); } return(new SQLiteFDBExplorerObject(parent, filename)); }
async static public Task <SQLiteFDBFeatureClass> Create(SQLiteFDB fdb, IDataset dataset, GeometryDef geomDef, BinarySearchTree tree) { var fc = await Create(fdb, dataset, geomDef); fc._searchTree = tree; return(fc); }
public void Dispose() { if (_fdb != null) { _fdb.Dispose(); _fdb = null; } }
public NetworkFeatureCursor(SQLiteFDB fdb, string networkName, List <IFeatureClass> edgeFcs, IFeatureClass nodeFc, IQueryFilter filter) { _fdb = fdb; _networkName = networkName; _edgeFcs = edgeFcs; _nodeFc = nodeFc; _filter = filter; }
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 SQLiteFDBFeatureClass(SQLiteFDB 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(); }
internal SQLiteFDBDataset(SQLiteFDB fdb, string dsname) : this() { _dsname = dsname; string connStr = fdb.DatabaseConnectionString; if (!connStr.Contains(";dsname=" + dsname)) { connStr += ";dsname=" + dsname; } this.ConnectionString = connStr; Open(); }
async public Task <IExplorerObject> CreateExplorerObject(IExplorerObject parentExObject) { if (!CanCreate(parentExObject)) { return(null); } var instance = await parentExObject.GetInstanceAsync(); if (!(instance is IFeatureDataset) || !(((IDataset)instance).Database is SQLiteFDB)) { return(null); } SQLiteFDB fdb = ((IDataset)instance).Database as SQLiteFDB; FormNewFeatureclass dlg = await FormNewFeatureclass.Create(instance as IFeatureDataset); if (dlg.ShowDialog() != DialogResult.OK) { return(null); } IGeometryDef gDef = dlg.GeometryDef; int FCID = await fdb.CreateFeatureClass( parentExObject.Name, dlg.FeatureclassName, gDef, dlg.Fields); if (FCID < 0) { MessageBox.Show("ERROR: " + fdb.LastErrorMessage); return(null); } ISpatialIndexDef sIndexDef = await fdb.SpatialIndexDef(parentExObject.Name); await fdb.SetSpatialIndexBounds(dlg.FeatureclassName, "BinaryTree2", dlg.SpatialIndexExtents, 0.55, 200, dlg.SpatialIndexLevels); IDatasetElement element = await((IFeatureDataset)instance).Element(dlg.FeatureclassName); return(new SQLiteFDBFeatureClassExplorerObject( parentExObject as SQLiteFDBDatasetExplorerObject, _filename, parentExObject.Name, element)); }
public IExplorerObject CreateExplorerObject(IExplorerObject parentExObject) { if (!CanCreate(parentExObject)) { return(null); } if (!(parentExObject.Object is IFeatureDataset) || !(((IDataset)parentExObject.Object).Database is SQLiteFDB)) { return(null); } SQLiteFDB fdb = ((IDataset)parentExObject.Object).Database as SQLiteFDB; FormNewFeatureclass dlg = new FormNewFeatureclass(parentExObject.Object as IFeatureDataset); if (dlg.ShowDialog() != DialogResult.OK) { return(null); } IGeometryDef gDef = dlg.GeometryDef; int FCID = fdb.CreateFeatureClass( parentExObject.Name, dlg.FeatureclassName, gDef, dlg.Fields); if (FCID < 0) { MessageBox.Show("ERROR: " + fdb.lastErrorMsg); return(null); } ISpatialIndexDef sIndexDef = fdb.SpatialIndexDef(parentExObject.Name); fdb.SetSpatialIndexBounds(dlg.FeatureclassName, "BinaryTree2", dlg.SpatialIndexExtents, 0.55, 200, dlg.SpatialIndexLevels); IDatasetElement element = ((IFeatureDataset)parentExObject.Object)[dlg.FeatureclassName]; return(new SQLiteFDBFeatureClassExplorerObject( parentExObject as SQLiteFDBDatasetExplorerObject, _filename, parentExObject.Name, element)); }
async static public Task <SQLiteFDBFeatureClass> Create(SQLiteFDB fdb, IDataset dataset, GeometryDef geomDef) { var fc = new SQLiteFDBFeatureClass(); 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 static internal Task <SQLiteFDBDataset> Create(SQLiteFDB fdb, string dsname) { var ds = new SQLiteFDBDataset(); ds._dsname = dsname; string connStr = fdb.DatabaseConnectionString; if (!connStr.Contains(";dsname=" + dsname)) { connStr += ";dsname=" + dsname; } await ds.SetConnectionString(connStr); await ds.Open(); return(ds); }
async private Task <string[]> DatasetNames() { try { SQLiteFDB fdb = new SQLiteFDB(); if (!await fdb.Open(_filename)) { _errMsg = fdb.LastErrorMessage; return(null); } string[] ds = await fdb.DatasetNames(); string[] dsMod = new string[ds.Length]; int i = 0; foreach (string dsname in ds) { var isImageDatasetResult = await fdb.IsImageDataset(dsname); string imageSpace = isImageDatasetResult.imageSpace; if (isImageDatasetResult.isImageDataset) { dsMod[i++] = "#" + dsname; } else { dsMod[i++] = dsname; } } if (ds == null) { _errMsg = fdb.LastErrorMessage; } fdb.Dispose(); return(dsMod); } catch (Exception ex) { _errMsg = ex.Message; return(null); } }
async public Task <IExplorerObject> CreateExplorerObject(IExplorerObject parentExObject) { if (!CanCreate(parentExObject)) { return(null); } FormNewDataset dlg = new FormNewDataset(); dlg.IndexTypeIsEditable = false; if (dlg.ShowDialog() != DialogResult.OK) { return(null); } SQLiteFDB fdb = new SQLiteFDB(); await fdb.Open(parentExObject.FullName); int dsID = -1; string datasetName = dlg.DatasetName; switch (dlg.DatasetType) { case FormNewDataset.datasetType.FeatureDataset: dsID = await fdb.CreateDataset(datasetName, dlg.SpatialReferene); break; case FormNewDataset.datasetType.ImageDataset: dsID = await fdb.CreateImageDataset(datasetName, dlg.SpatialReferene, null, dlg.ImageSpace, dlg.AdditionalFields); datasetName = "#" + datasetName; break; } if (dsID == -1) { MessageBox.Show(fdb.LastErrorMessage, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } return(new SQLiteFDBDatasetExplorerObject(parentExObject, parentExObject.FullName, datasetName)); }
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 SQLiteFDB(); } _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 SQLiteFDBFeatureClass(SQLiteFDB fdb, IDataset dataset, GeometryDef geomDef, BinarySearchTree tree) : this(fdb, dataset, geomDef) { _searchTree = tree; }
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 SQLiteFDBNetworkFeatureClass(SQLiteFDB 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(Convert.ToInt32(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( gView.Framework.Db.DataProvider.SQLiteProviderFactory, _fdb.ConnectionString, _name, _fdb.TableName("FC_" + _name), _fdb.TableName(_name + "_Edges"), _fdb.TableName("FC_" + name + "_Nodes"), weightTableNames, weightDataTypes, _fdb ); }
public SQLiteFDBDataset() { _addedLayers = new List <string>(); _fdb = new SQLiteFDB(); }
public SQLiteFDBGraphTableAdapter(SQLiteFDB fdb, SQLiteFDBNetworkFeatureClass nfc) { _connString = fdb.ConnectionString; _nfc = nfc; _name = _nfc.Name; //name; }