Is anyone aware of any plugins, or any other way to connect and view data from an ArcSDE database in QGIS desktop?
It may be possible to build a bridge through GDAL/OGR's ArcSDE driver. It's not compiled in by default and needs some pieces of the ESRI SDE C API to connect. So to build this driver you need to have a copy of the SDE C API developer kit from ESRI. If memory serves, there is a pre-compiled sde driver floating around that can use ArcInfo Workstation installed on the local machine in place of the SDK.
I am glad to say I have it working! I'm using QGIS 1.7 from OSGeo4W:
- get the
ogr_sde.dll(compile it from Tamas, you also need some ArcSDE SDK files)
- replace the
gdal18.dllused by qgis with the one you compiled above
- create a
.vrtfile with your ArcSDE connection and feature classe details
- add the vrt to QGIS, and voila!
Thing is, ogr takes a long time to connect. But viewing is OK. Just the connecting part is way too slow. Maybe someone will figure out a parameter for the connection to speed it up.
EDIT: forgot you also have to copy the following DLLs from your compilation in step 1:
openjpeg.dll. You also need the ArcSDE libs:
pe.dll. Just put them in
EDIT 2: more info here: http://www.qgis.org/wiki/Connecting_to_ArcSDE_databases.
EDIT 3: the conection time is no longer a problem. Just a matter of correct connection string in the vrt. See the link for examples.
If you use Postgres as your backend DB of ArcSDE, you have the option of storing spatial data in ST_Geometry (SDE spatial format) or PG_Geometry (PostGIS spatial format). If you store the data in PostGIS enabled DB and specify the PG_Geometry option when you import the data (optionally you can edit dbtune, I believe, to set PG_Geometry as the default), you will be able to connect to the data via an SDE connection or via a desktop client that can connect directly to PostGIS (such as QGIS)