File tree Expand file tree Collapse file tree 2 files changed +41
-1
lines changed Expand file tree Collapse file tree 2 files changed +41
-1
lines changed Original file line number Diff line number Diff line change @@ -209,6 +209,35 @@ QgsOracleProvider::~QgsOracleProvider()
209
209
disconnectDb ();
210
210
}
211
211
212
+ QString QgsOracleProvider::getWorkspace () const
213
+ {
214
+ return mUri .param ( " dbworkspace" );
215
+ }
216
+
217
+ void QgsOracleProvider::setWorkspace ( const QString &workspace )
218
+ {
219
+ QgsDataSourceURI prevUri ( mUri );
220
+
221
+ disconnectDb ();
222
+
223
+ if ( workspace.isEmpty () )
224
+ mUri .removeParam ( " dbworkspace" );
225
+ else
226
+ mUri .setParam ( " dbworkspace" , workspace );
227
+
228
+ mConnection = QgsOracleConn::connectDb ( mUri );
229
+ if ( !mConnection )
230
+ {
231
+ mUri = prevUri;
232
+ QgsDebugMsg ( QString ( " restoring previous uri:%1" ).arg ( mUri .uri () ) );
233
+ mConnection = QgsOracleConn::connectDb ( mUri );
234
+ }
235
+ else
236
+ {
237
+ setDataSourceUri ( mUri .uri () );
238
+ }
239
+ }
240
+
212
241
QgsAbstractFeatureSource *QgsOracleProvider::featureSource () const
213
242
{
214
243
return new QgsOracleFeatureSource ( this );
@@ -2325,7 +2354,7 @@ bool QgsOracleProvider::getGeometryDetails()
2325
2354
}
2326
2355
2327
2356
if ( exec ( qry, QString ( mUseEstimatedMetadata
2328
- ? " SELECT DISTINCT gtype FROM (SELECT t.%1.sdo_gtype AS gtype FROM %2 t WHERE t.%1 IS NOT NULL AND rownum<1000 ) WHERE rownum<=2"
2357
+ ? " SELECT DISTINCT gtype FROM (SELECT t.%1.sdo_gtype AS gtype FROM %2 t WHERE t.%1 IS NOT NULL AND rownum<100 ) WHERE rownum<=2"
2329
2358
: " SELECT DISTINCT t.%1.sdo_gtype FROM %2 t WHERE t.%1 IS NOT NULL AND rownum<=2" ).arg ( quotedIdentifier ( geomCol ) ).arg ( mQuery ) ) )
2330
2359
{
2331
2360
if ( qry.next () )
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ enum QgsOraclePrimaryKeyType
54
54
class QgsOracleProvider : public QgsVectorDataProvider
55
55
{
56
56
Q_OBJECT
57
+ Q_PROPERTY ( QString workspace READ getWorkspace WRITE setWorkspace )
57
58
58
59
public:
59
60
@@ -281,6 +282,16 @@ class QgsOracleProvider : public QgsVectorDataProvider
281
282
*/
282
283
virtual bool isSaveAndLoadStyleToDBSupported () override { return true ; }
283
284
285
+ /* *
286
+ * Switch to oracle workspace
287
+ */
288
+ void setWorkspace ( const QString &workspace );
289
+
290
+ /* *
291
+ * Retrieve oracle workspace name
292
+ */
293
+ QString getWorkspace () const ;
294
+
284
295
private:
285
296
QString whereClause ( QgsFeatureId featureId ) const ;
286
297
QString pkParamWhereClause () const ;
You can’t perform that action at this time.
0 commit comments