Skip to content

Commit c7d632e

Browse files
author
jef
committed
fix #2009
git-svn-id: http://svn.osgeo.org/qgis/trunk@12922 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent c2aae20 commit c7d632e

File tree

1 file changed

+58
-11
lines changed

1 file changed

+58
-11
lines changed

src/app/ogr/qgsogrhelperfunctions.cpp

+58-11
Original file line numberDiff line numberDiff line change
@@ -24,35 +24,66 @@
2424
QString createDatabaseURI( QString connectionType, QString host, QString database, QString port, QString user, QString password )
2525
{
2626
QString uri = "";
27+
2728
//todo:add default ports for all kind of databases
2829
if ( connectionType == "ESRI Personal GeoDatabase" )
2930
{
3031
uri = "PGeo:" + database;
3132
}
3233
else if ( connectionType == "ESRI ArcSDE" )
3334
{
34-
if ( port.isNull() || port.isEmpty() )
35+
if ( port.isEmpty() )
3536
port = "5151";
37+
3638
uri = "SDE:" + host + ",PORT:" + port + "," + database + "," + user + "," + password;
3739
}
3840
else if ( connectionType == "Informix DataBlade" )
3941
{
4042
//not tested
41-
uri = "IDB:dbname=" + database + " server=" + host
42-
+ " user=" + user
43-
+ " pass=" + password + " ";
43+
uri = "IDB:dbname=" + database;
44+
45+
if ( !host.isEmpty() )
46+
uri += QString( " server=%1" ).arg( host );
47+
48+
if ( !user.isEmpty() )
49+
{
50+
uri += QString( " user=%1" ).arg( user );
4451

52+
if ( !password.isEmpty() )
53+
uri += QString( " pass=%1" ).arg( password );
54+
}
4555
}
4656
else if ( connectionType == "INGRES" )
4757
{
4858
//not tested
49-
uri = "@driver=ingres,dbname=" + database + ",userid=" + user + ", password=" + password + " ";
59+
uri = "@driver=ingres,dbname=" + database;
60+
if ( !user.isEmpty() )
61+
{
62+
uri += QString( ",userid=%1" ).arg( user );
63+
64+
if ( !password.isEmpty() )
65+
uri += QString( ",password=%1" ).arg( password );
66+
}
5067
}
5168
else if ( connectionType == "MySQL" )
5269
{
53-
uri = "MySQL:" + database + ",host=" + host
54-
+ ",port=" + port + ",user=" + user
55-
+ ", password=" + password + " ";
70+
uri = "MySQL:" + database;
71+
72+
if ( !host.isEmpty() )
73+
{
74+
uri += QString( ",host=%1" ).arg( host );
75+
76+
if ( !port.isEmpty() )
77+
uri += QString( ",port=%1" ).arg( port );
78+
}
79+
80+
if ( !user.isEmpty() )
81+
{
82+
uri += QString( ",user=%1" ).arg( user );
83+
84+
if ( !password.isEmpty() )
85+
uri += QString( ",password=%1" ).arg( password );
86+
}
5687
}
5788
else if ( connectionType == "Oracle Spatial" )
5889
{
@@ -97,11 +128,27 @@ QString createDatabaseURI( QString connectionType, QString host, QString databas
97128
}
98129
else if ( connectionType == "PostgreSQL" )
99130
{
100-
uri = "PG:dbname='" + database + "' host='" + host
101-
+ "' port='" + port + "' user='" + user
102-
+ "' password='" + password + "' ";
131+
uri = "PG:dbname='" + database + "'";
132+
133+
if ( !host.isEmpty() )
134+
{
135+
uri += QString( " host='%1'" ).arg( host );
103136

137+
if ( !port.isEmpty() )
138+
uri += QString( " port='%1'" ).arg( port );
139+
}
140+
141+
if ( !user.isEmpty() )
142+
{
143+
uri += QString( " user='%1'" ).arg( user );
144+
145+
if ( !password.isEmpty() )
146+
uri += QString( " password='%1'" ).arg( password );
147+
}
148+
149+
uri += " ";
104150
}
151+
105152
QgsDebugMsg( "Connection type is=" + connectionType + " and uri=" + uri );
106153
return uri;
107154
}

0 commit comments

Comments
 (0)