diff options
Diffstat (limited to 'OpenSim')
3 files changed, 69 insertions, 8 deletions
diff --git a/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs b/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs new file mode 100644 index 0000000..725322d --- /dev/null +++ b/OpenSim/Framework/Data.MSSQLMapper/MSSQLDatabaseMapper.cs | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSim Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System.Data.Common; | ||
29 | using System.Data.SqlClient; | ||
30 | using OpenSim.Framework.Data; | ||
31 | |||
32 | namespace OpenSim.Framework.Data.MSSQLMapper | ||
33 | { | ||
34 | public class MSSQLDatabaseMapper : OpenSimDatabaseConnector | ||
35 | { | ||
36 | public MSSQLDatabaseMapper(string connectionString) | ||
37 | : base(connectionString) | ||
38 | { | ||
39 | } | ||
40 | |||
41 | public override DbConnection GetNewConnection() | ||
42 | { | ||
43 | SqlConnection connection = new SqlConnection(m_connectionString); | ||
44 | return connection; | ||
45 | } | ||
46 | |||
47 | public override string CreateParamName(string fieldName) | ||
48 | { | ||
49 | return "@" + fieldName; | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs b/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs index 37b933c..8995b9e 100644 --- a/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs +++ b/OpenSim/Framework/Data.MapperFactory/DataMapperFactory.cs | |||
@@ -1,8 +1,6 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | ||
3 | using OpenSim.Framework; | ||
4 | using OpenSim.Framework.Data; | ||
5 | using OpenSim.Framework.Data.Base; | 2 | using OpenSim.Framework.Data.Base; |
3 | using OpenSim.Framework.Data.MSSQLMapper; | ||
6 | using OpenSim.Framework.Data.MySQLMapper; | 4 | using OpenSim.Framework.Data.MySQLMapper; |
7 | 5 | ||
8 | namespace OpenSim.Framework.Data.MapperFactory | 6 | namespace OpenSim.Framework.Data.MapperFactory |
@@ -10,16 +8,19 @@ namespace OpenSim.Framework.Data.MapperFactory | |||
10 | public class DataMapperFactory | 8 | public class DataMapperFactory |
11 | { | 9 | { |
12 | public enum MAPPER_TYPE { | 10 | public enum MAPPER_TYPE { |
13 | MYSQL, | 11 | MySQL, |
12 | MSSQL, | ||
14 | }; | 13 | }; |
15 | 14 | ||
16 | static public BaseDatabaseConnector GetDataBaseMapper(MAPPER_TYPE type, string connectionString) | 15 | static public BaseDatabaseConnector GetDataBaseMapper(MAPPER_TYPE type, string connectionString) |
17 | { | 16 | { |
18 | switch (type) { | 17 | switch (type) { |
19 | case MAPPER_TYPE.MYSQL: | 18 | case MAPPER_TYPE.MySQL: |
20 | return new MySQLDatabaseMapper(connectionString); | 19 | return new MySQLDatabaseMapper(connectionString); |
20 | case MAPPER_TYPE.MSSQL: | ||
21 | return new MSSQLDatabaseMapper(connectionString); | ||
21 | default: | 22 | default: |
22 | return null; | 23 | throw new ArgumentException("Unknown Database Mapper type [" + type + "]."); |
23 | } | 24 | } |
24 | } | 25 | } |
25 | } | 26 | } |
diff --git a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs index b1a138b..751e92e 100644 --- a/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/Modules/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -220,14 +220,22 @@ namespace OpenSim.Region.Modules.AvatarFactory | |||
220 | try | 220 | try |
221 | { | 221 | { |
222 | m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false); | 222 | m_enablePersist = source.Configs["Startup"].GetBoolean("appearance_persist", false); |
223 | m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", ""); | ||
224 | } | 223 | } |
225 | catch (Exception) | 224 | catch (Exception) |
226 | { | 225 | { |
227 | } | 226 | } |
228 | if (m_enablePersist) | 227 | if (m_enablePersist) |
229 | { | 228 | { |
230 | m_databaseMapper = DataMapperFactory.GetDataBaseMapper(DataMapperFactory.MAPPER_TYPE.MYSQL, m_connectionString); | 229 | m_connectionString = source.Configs["Startup"].GetString("appearance_connection_string", ""); |
230 | |||
231 | string mapperTypeStr = source.Configs["Startup"].GetString("appearance_database", "MYSQL"); | ||
232 | |||
233 | DataMapperFactory.MAPPER_TYPE mapperType = | ||
234 | (DataMapperFactory.MAPPER_TYPE) | ||
235 | Enum.Parse(typeof (DataMapperFactory.MAPPER_TYPE), mapperTypeStr); | ||
236 | |||
237 | m_databaseMapper = DataMapperFactory.GetDataBaseMapper(mapperType, m_connectionString); | ||
238 | |||
231 | m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance"); | 239 | m_appearanceMapper = new AppearanceTableMapper(m_databaseMapper, "AvatarAppearance"); |
232 | } | 240 | } |
233 | } | 241 | } |