|
24 | 24 | QString createDatabaseURI( QString connectionType, QString host, QString database, QString port, QString user, QString password )
|
25 | 25 | {
|
26 | 26 | QString uri = "";
|
| 27 | + |
27 | 28 | //todo:add default ports for all kind of databases
|
28 | 29 | if ( connectionType == "ESRI Personal GeoDatabase" )
|
29 | 30 | {
|
30 | 31 | uri = "PGeo:" + database;
|
31 | 32 | }
|
32 | 33 | else if ( connectionType == "ESRI ArcSDE" )
|
33 | 34 | {
|
34 |
| - if ( port.isNull() || port.isEmpty() ) |
| 35 | + if ( port.isEmpty() ) |
35 | 36 | port = "5151";
|
| 37 | + |
36 | 38 | uri = "SDE:" + host + ",PORT:" + port + "," + database + "," + user + "," + password;
|
37 | 39 | }
|
38 | 40 | else if ( connectionType == "Informix DataBlade" )
|
39 | 41 | {
|
40 | 42 | //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 ); |
44 | 51 |
|
| 52 | + if ( !password.isEmpty() ) |
| 53 | + uri += QString( " pass=%1" ).arg( password ); |
| 54 | + } |
45 | 55 | }
|
46 | 56 | else if ( connectionType == "INGRES" )
|
47 | 57 | {
|
48 | 58 | //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 | + } |
50 | 67 | }
|
51 | 68 | else if ( connectionType == "MySQL" )
|
52 | 69 | {
|
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 | + } |
56 | 87 | }
|
57 | 88 | else if ( connectionType == "Oracle Spatial" )
|
58 | 89 | {
|
@@ -97,11 +128,27 @@ QString createDatabaseURI( QString connectionType, QString host, QString databas
|
97 | 128 | }
|
98 | 129 | else if ( connectionType == "PostgreSQL" )
|
99 | 130 | {
|
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 ); |
103 | 136 |
|
| 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 += " "; |
104 | 150 | }
|
| 151 | + |
105 | 152 | QgsDebugMsg( "Connection type is=" + connectionType + " and uri=" + uri );
|
106 | 153 | return uri;
|
107 | 154 | }
|
|
0 commit comments