ODBC link between MS Access and qGIS .gpkg data? - sqlite

I am an MS Office veteran with self-taught basic GIS skills (Tatuk Editor), including use of SQLite-based layers that link to MS Access. In the past few years I've been learning to use qGIS, and for the most part, the experience has been very positive.
What hasn't been so great in the qGIS learning curve is my attempt to link a qGIS-created geopackage layer (using the SQlite ODBC driver) to an MS Access application for the express purpose of editing and, ideally, for programmatic updating of attribute fields in existing records. Yes, the gpkg table will link, but unfortunately the connection is read-only. The problem apparently stems from an rtree rigger in the underlying geodatabase that won't allow the edited or updated records to be written /saved.
At the recommendation of a friend who is more highly versed in these technicalities, I tried to resolve the 'no gpkg editing' problem by adding spatialite .dll files to the system folder and appropriate extensions in the ODBC set up box, all without success. I next dumped the 32 bit version of my Office 365 software and transitioned to the 64 bit version, which fortunately didn't faze my existing documents, databases, etc. but had no effect whatsoever on the 'no gpkg editing' problem. At the end of the day, I'm no closer to achieving the desired solution, i.e. an editable connection between Access and the gpkg table.
Without going into immense detail of the various steps I've tried, I will stop here and give folks an opportunity to respond. I'm hopeful that someone reading this has not only encountered the 'no gpkg editing' problem when linking to a geopackage with MS Access, but has also learned how to resolve the issue. If you are that person, please explain the process as best possible. If it simply can't be done, I would appreciate knowing that, as well.

I have the same exact problem. I downloaded the spatialite dlls and tried to put them in the same folder as the ODBC driver, and Sys32 other folders. No Dice. I tried using 32-bit and 64-bit driver, no dice. I tried the environment variable. No Dice.
I'm also an ArcGIS user who will miss being able to use Access Databases. Now that Pro can edit geopackages, we'd have a great option if we could edit the data in Access via ODBC. Frustrating!

Related

R - Removing all ability to connect to the internet

I have been trying to make the case to have R installed at my place of employment. However, the IT department has come back with a risk assessment that R has potential risks. After much debating (and brick-head-interaction), I suggested removing all internet connectivity from R.
I know (hope?) in principle that it can be done, since 'base' R is open source and can be edited. My questions are:
How do I disable all internet possibility from 'base' R by editing the source code?
Once 1. is done, will the lack of internet flow on to packages? That is, will all internet be cut off from any package, no matter what the package is trying to do?
(Sorry, I'm a stats/maths guy, not so much a 'deep' programming dude.)
Wow, what a very strict work condition! Yeah, data analysis can be sometimes very dangerous. :-)
Generaly speaking it's possible to use R without internet connection, you just have to download the packages and install them from source (.zip/.tar.gz files).
But adjusting R source code would be unnecessary effort. I think that your IT department should be able to block access to internet connection in the firewall settings for R apps (R, RGui and/or RStudio), which takes only few minutes to set up. E.g. in Windows they can use Windows Defender Firewall with Advanced Security to block outbound connections from R exe files:
If they use another firewall or network rules, they should be able to set it up correctly and quickly as well.

Excel ODBC on 64-bit - again

I fear this has been beaten to death, but I'm still struggling with the problem of reading Excel files in my ASP.NET application that has recently been ported to Server 2008 and 64-bit.
Many posts I find point to the existence of 64-bit Microsoft drivers here:
here and here.
My concern is the warnings I'm also reading about these not intended "As a replacement for the Jet OLEDB Provider in server-side applications" possibly for thread-safe reasons? This IS a server-side application and while Excel uploads aren't hundreds-of-times-a-day ocurrances, they will be done by customers.
I know there are also commercial libraries available and while I'm opening to considering them I do worry about the 'revision chase' and not getting burned by them going belly-up (it has happened to us before).
So, IS there a thread-safe, server-safe way to read Excel files in 64 bits?
And before you suggest .CSV, I have a hard enough time getting customers to send me reasonably-formatted Excel files, let alone asking them to export to a .csv.
Oh, and to add yet-another-requirement, I really don't want to run the whole application 32-bit.
You may be able to hook into a Java library such as this:
http://jexcelapi.sourceforge.net/
I have no affiliation with these guys: SpreadsheetGear but their tool completely solved my problem. Wicked fast and server-wide formula evaluation. VERY cool.

Simulating a TWAIN Device

Our company is using some software that ONLY accepts input from an "Imaging Device" i.e. a TWAIN device (e.g. scanner).
The problem is that we are receiving our files digitally, so using an actual scanner would require us to print, scan, and shred documents that we already have on the computer, but not in the software.
I was curious if anybody has any idea of how we might be able to work around this problem in the meantime. My first thought was to find some way to trick the program into thinking we're using a scanner, via some new 'imaging device' that would just read in the file, and spit it out to the software, but I don't even know where to begin with that.
We put in a feature request, seeing as how this problem should obviously be addressed in the software itself, but the company is notorious for lagging pretty hard when it comes to updates.
The system used by scanners is called TWAIN, so you'd be looking for some sort of virtual twain driver.
A quick google search will produce several hits, I don't have any experience with the software myself so can't advise any further.
Two such providers I found via experts exchange:
http://www.twaintools.de
http://www.scanpoint-usa.com
OK, months late... but in case you are interested, I have a TWAIN driver framework/toolkit that might let you build this fairly easily, depending on just what your scanning app expects, and how hard it is to read images from your digital documents. It's a Microsoft Visual C++ project. No charge but you'd need our permission to redistribute a driver based on it: GenDS
The TWAIN Working Group also has a sample/skeleton driver, I think it's straight C - and used to have some rather bad bugs (Why I wrote mine ;-) but, it might have got better.
Look for the "sample data source and application" on their download page.
And of course I have a 'commercial' version of GenDS that I use to write TWAIN drivers on contract.

Slow solution loading in visual studio 2008

I am working on an ASP.NET 3.5 project which has 55 projects in a solution. When opening the solution in Visual Studio 2008, it takes over a minute to open - about 1 second for each project. However, if I disconnect the network cable before opening the solution, it only takes about 15 seconds! Any ideas about what could be causing the slowdown?
I had this happen to me back in the days when we were using Visual Source Safe.
Could be your source control plugin asking for updates if you have the solution under source control.
You should do some investigation, fire up Wireshark, start a capture on the interface in question and see what traffic is flowing over the wire.
Can I answer a question with a question? What is the secret to getting VS to not just die with that many projects, let alone load in a phenomenally quick 60 seconds?
At about 10-12 projects the compile time on Visual Studio becomes unbearable, at about 5-8 projects Resharper will crash. The IDE is such a memory pig that even opening more projects by using multiple instances of VS usually isn't an option.
Anyhow, it's all about memory usage and the odd ball out project is probably doing it, e.g. the one with the most files.
I had the same problem this week (5 years later!!). It was caused by a huge .suo file (almost 400 Mb), deleting it fixed the problem.
A few years ago I remember a colleague having some similar problem (with a lot smaller solution, and in VS2003). Can't remember the details, but I think it was related to the local ASPNET user account (or rather, that it did not exist). Not sure though...
As a side note: I usually find it more efficient to have perhaps around a handful of projects in each solution (usually one solution produces one or two assemblies used in production code), and then have a few Visual Studio instances running at the same time. 50+ projects in the same solutions feels like asking for problems.
Might be that you have other dependencies though, just wanted to share my thoughts.
which has 55 projects in a solution
WOW. I can't imagine what type of solution needs that many projects. The answer is probably that your source control provider needs to refresh the status of each of the items, all of which take time.
For edit-merge-commit style version control systems, such as subversion, this operation doesn't take place. Try temporarily removing source control from the entire solution to see if this is the culprit.
If your solution is attached to source control, then it is trying to load up the symbols and verify which items you have checked out. So, if you have a slow connection, it is oftentimes faster to take the solution offline.
http://www.tmgirvin.com/2009/03/working-offline-with-visual-studio-2008-and-tfs.html
EDIT
Another solution which I've seen used,
create a
_webTier.sln
_database.sln
_build.sln
( is your project name)
and each of those solutions is a self-sufficient part of the entire project, but that way if you are working on the webtier and you don't need the database project or the mobile project parts to load up, you can just open the webtier solution.
The build solution contains the entire package that needs to be built, and takes a very long time to load.
I had this problem on a development machine with no internet connection and it turned out that the problem was related to a setting in IE's internet options:
Control Panel -> Internet Options ->
Advanced -> Security -> Check for
publisher's certificate revocation
After making sure this was unchecked my solutions started loading quickly again.

Recommendation for Sqlite DB manager application? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
There are quite a few Sqlite GUI applications listed here:
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
some appear to be incomplete, buggy, not maintained, etc. Do you have any recommendations?
I use the SQLite manager plugin for Firefox.
It seems pretty stable to me.
Here's another free option. It has been pretty stable for me. SQLiteStudio
For Windows: I've been looking for functionality and a comfortable GUI - it's been particularly hard to satisfy the latter requirement, but these two picks are both fine:
a) Good enough: SQLite Expert
Less expensive, fully featured manager. The author is very responsive to comments and bug reports, and publishes updates frequently. The flip side, if you look at version history, is that new releases seem to introduce new bugs, which are then fixed in sunsequent builds. The GUI is fine, very good for quickly designing new databases; a little less so for designing queries and working with large amounts of data. Main gripe: you can't see the schema while editing a query (without flipping tabs in the program).
b) Nearly perfect: SQLite Maestro
Pricier. Rich UI, easy access to all features, nice visual query builder and automatic SQL formatter for readability, lots of eye candy. There is a separate, more specialized query builder (SQLite Code Factory), but you can make do with just the main Maestro application. Main gripe: can't seem to be able to change font size for table display and the default is a little too small; at the beginning it's easy to get lost in the thicket of tabs, though overall I find the GUI very productive.
Both solutions are very stable in my experience, and both seem to offer occasional discounts, if you can afford to wait.
For just browsing data, try SQLite Spy - free and lets you execture queries, but no or little GUI support for editing. Very convenient for quick lookups though.
Spent the morning looking for a good Sqlite Database Manager/Browser and have settled on SqliteStudio, currently v2.20.28, which I'm running on Ubuntu Linux 10.04.
The download is one 4.3MB uncompressed executable file. Period!
It's fast, well-behaved, and uses modest resources.
The interface is clean and attractive with logical functionality.
I don't say this often, but it's just a "A Joy to Use".
It was developed and is actively maintained by Pawel Salawa who is is to be commended for producing a very nice program.
I just used it to merge two Firefox FloatNotes databases (Sqlite v3), which just use a single table...
The target database is on the local host where SqliteStudio is running (i.e. /0/LX02)
The source database file is on a remote host mounted via SSHFS to /0/LX04
Opened the two database files using Add Database.
Used the SQL Editor to execute an INSERT to the LX02 database from a SELECT on the LX04.
Click the Commit icon when all goes well or Rollback if there are errors to fix.
Refresh the table data to see the inserted rows.
There's no Import GUI functionality but merging is pretty simple if you know SQL. I supplied NULL for the first column which is the unique-id primary-key so that Sqlite would autoincrement, thus renumbering the rows being merged in...
INSERT INTO [floatnotes.sqlite].floatnotes
SELECT NULL,
url,
protocol,
content,
x,
y,
w,
h,
color,
status,
guid,
creation_date,
modification_date
FROM [floatnotes-LX04.sqlite].floatnotes;
I like SQLite Administrator
I've been using SQLite Professional and it's been reliable. The only downside was that changes I made to the db via the iOS simulator didn't resolve in the app (I had to close it and reopen for changes to show) but that feature was added in a recent version. So now it does everything I need. I'm happy with the support. It's good for testing and I use it to build out the db structure. Never been buggy.
I've used Sqliteman in the past. Quite nice.
SQLiteSpy is a good choice
Sqlite.org has a list of management tools available here:
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
If your using OSX you may like SQLPro for SQLite (App Store).
The app has a few neat features such as:
Versions Integration (rollback to previous versions).
Inline data filtering.
Exporting options to CSV, JSON, XML and MySQL.
Column reordering.
Full screen support.
I've been using SQL Explorer. The firefox plugin is awesome, but it couldn't handle BIGINTs properly (it truncated them). I have noticed that the .jar driver doesn't seem to support FTS4 (but it does support FTS3) and doesn't show indexes in the data structure.
I like SQL explorer as you can use other providers like mySQL too with the one client.
You didn't mention a platform, so here's a great comparison of Mac OS X SQLite tools. I personally found MesaSQLite to be most like my preference for database tools, which was CocoaMySQL incidentally. (For Windows, I just used the Firefox add-on mentioned above.)
If you're within Visual Studio most of the time then System.Data.SQLite is good, and as a plus handles encrypted databases.
Navicat SQLite is very good and they support Windows, OS X and Linux too.
You might want to check MYZSQLExplorer, here.
Unlike the other tools, it is running on iOS devices (or in the simulator). It is a Viewer, not a management tool, and is not as feature-complete as some of the other tools, but is convenient as you can launch it from within your code and browse your databse from within your app.
Or you can "Open In..." it sqlite stores, by sending them as email attachments.
I developed it in order to help myself during the development and testing phases, and it did help.
If you have any feedback on it, I'd love to hear it.
If you want just CRUD operations on the sqlite database file, then SQuirreL is a very option as it has an auto complete feature which drastically improve the speed and efficiency of typing the sql queries.
To use the SQLite database in SQuirreL first download the JDBC driver of the SQLite from here then drop the jar in the lib folder of the SQuirreL folder. Now open SQuirreL and choose Create a New Driver.
In the Example URL field put
jdbc:sqlite:$file_url
and in Class Name put
org.sqlite.JDBC
After that choose Create a New Alias and choose the driver that you just added and replace $file_url with the actual location of the sqlite file then click ok and you are done.

Resources