* Added specialization of DatabaseMapper, DataReader and ObjectFieldMapper to support LLVector3, LLQuaternion and LLUUID
* Added PrimitiveBaseShapeTableMapper to show how it's done NOTE: Nothing actually works yet - this code should be considered more of educational value until it's all wired togetherThreadPoolClientBranch
parent
b49ae37e89
commit
6d751411b7
|
@ -0,0 +1,24 @@
|
||||||
|
using System.Data.Common;
|
||||||
|
using MySql.Data.MySqlClient;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data.MySQL
|
||||||
|
{
|
||||||
|
public class MySQLDatabaseMapper : OpenSimDatabaseMapper
|
||||||
|
{
|
||||||
|
public MySQLDatabaseMapper(string connectionString)
|
||||||
|
: base(connectionString)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override DbConnection GetNewConnection()
|
||||||
|
{
|
||||||
|
MySqlConnection connection = new MySqlConnection(m_connectionString);
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string CreateParamName(string fieldName)
|
||||||
|
{
|
||||||
|
return "?" + fieldName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Text;
|
||||||
|
using libsecondlife;
|
||||||
|
using TribalMedia.Framework.Data;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data
|
||||||
|
{
|
||||||
|
public class OpenSimDataReader : DataReader
|
||||||
|
{
|
||||||
|
public OpenSimDataReader(IDataReader source) : base(source)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public LLVector3 GetVector(string s)
|
||||||
|
{
|
||||||
|
float x = GetFloat(s + "X");
|
||||||
|
float y = GetFloat(s + "Y");
|
||||||
|
float z = GetFloat(s + "Z");
|
||||||
|
|
||||||
|
LLVector3 vector = new LLVector3(x, y, z);
|
||||||
|
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LLQuaternion GetQuaternion(string s)
|
||||||
|
{
|
||||||
|
float x = GetFloat(s + "X");
|
||||||
|
float y = GetFloat(s + "Y");
|
||||||
|
float z = GetFloat(s + "Z");
|
||||||
|
float w = GetFloat(s + "W");
|
||||||
|
|
||||||
|
LLQuaternion quaternion = new LLQuaternion(x, y, z, w);
|
||||||
|
|
||||||
|
return quaternion;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System.Data.Common;
|
||||||
|
using libsecondlife;
|
||||||
|
using TribalMedia.Framework.Data;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data
|
||||||
|
{
|
||||||
|
public abstract class OpenSimDatabaseMapper : DatabaseMapper
|
||||||
|
{
|
||||||
|
public OpenSimDatabaseMapper(string connectionString) : base(connectionString)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override object ConvertToDbType(object value)
|
||||||
|
{
|
||||||
|
if (value is LLUUID)
|
||||||
|
{
|
||||||
|
return ((LLUUID) value).UUID.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.ConvertToDbType(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using libsecondlife;
|
||||||
|
using TribalMedia.Framework.Data;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data
|
||||||
|
{
|
||||||
|
public class OpenSimObjectFieldMapper<TObject, TField> : ObjectField<TObject, TField>
|
||||||
|
{
|
||||||
|
public OpenSimObjectFieldMapper(TableMapper tableMapper, string fieldName,
|
||||||
|
ObjectGetAccessor<TObject, TField> rowMapperGetAccessor,
|
||||||
|
ObjectSetAccessor<TObject, TField> rowMapperSetAccessor)
|
||||||
|
: base(tableMapper, fieldName, rowMapperGetAccessor, rowMapperSetAccessor)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ExpandField<TObj>(TObj obj, System.Data.Common.DbCommand command, List<string> fieldNames)
|
||||||
|
{
|
||||||
|
string fieldName = FieldName;
|
||||||
|
object value = GetParamValue(obj);
|
||||||
|
|
||||||
|
if (ValueType == typeof(LLVector3))
|
||||||
|
{
|
||||||
|
LLVector3 vector = (LLVector3)value;
|
||||||
|
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "X", vector.X);
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "Y", vector.Y);
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "Z", vector.Z);
|
||||||
|
}
|
||||||
|
else if (ValueType == typeof(LLQuaternion))
|
||||||
|
{
|
||||||
|
LLQuaternion quaternion = (LLQuaternion)value;
|
||||||
|
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "X", quaternion.X);
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "Y", quaternion.Y);
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "Z", quaternion.Z);
|
||||||
|
RawAddParam(command, fieldNames, fieldName + "W", quaternion.W);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
base.ExpandField<TObj>(obj, command, fieldNames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override object GetValue(DataReader reader)
|
||||||
|
{
|
||||||
|
object value;
|
||||||
|
|
||||||
|
OpenSimDataReader osreader = (OpenSimDataReader) reader;
|
||||||
|
|
||||||
|
if (ValueType == typeof(LLVector3))
|
||||||
|
{
|
||||||
|
value = osreader.GetVector(FieldName);
|
||||||
|
}
|
||||||
|
else if (ValueType == typeof(LLQuaternion))
|
||||||
|
{
|
||||||
|
value = osreader.GetQuaternion(FieldName);
|
||||||
|
}
|
||||||
|
else if (ValueType == typeof(LLUUID))
|
||||||
|
{
|
||||||
|
Guid guid = reader.GetGuid(FieldName);
|
||||||
|
value = new LLUUID(guid);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = base.GetValue(reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,143 @@
|
||||||
|
using System;
|
||||||
|
using OpenSim.Framework;
|
||||||
|
using TribalMedia.Framework.Data;
|
||||||
|
using libsecondlife;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data
|
||||||
|
{
|
||||||
|
public class PrimitiveBaseShapeRowMapper : RowMapper<PrimitiveBaseShape>
|
||||||
|
{
|
||||||
|
public Guid SceneObjectPartId;
|
||||||
|
|
||||||
|
public PrimitiveBaseShapeRowMapper(Schema schema, PrimitiveBaseShape obj) : base(schema, obj)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PrimitiveBaseShapeTableMapper : ObjectTableMapper<PrimitiveBaseShapeRowMapper, Guid>
|
||||||
|
{
|
||||||
|
public PrimitiveBaseShapeTableMapper(DatabaseMapper connection, string tableName)
|
||||||
|
: base(connection, tableName)
|
||||||
|
{
|
||||||
|
RowMapperSchema<PrimitiveBaseShapeRowMapper> rowMapperSchema = new RowMapperSchema<PrimitiveBaseShapeRowMapper>(this);
|
||||||
|
m_schema = rowMapperSchema;
|
||||||
|
|
||||||
|
m_keyFieldMapper = rowMapperSchema.AddMapping<Guid>("SceneObjectPartId",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.SceneObjectPartId; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, Guid value) { shape.SceneObjectPartId = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PCode",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PCode; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PCode = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<ushort>("PathBegin",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathBegin; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, ushort value) { shape.Object.PathBegin = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<ushort>("PathEnd",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathEnd; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, ushort value) { shape.Object.PathEnd = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathScaleX",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathScaleX; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathScaleX = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathScaleY",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathScaleY; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathScaleY = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathShearX",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathShearX; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathShearX = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathShearY",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathShearY; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathShearY = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<ushort>("ProfileBegin",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.ProfileBegin; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, ushort value) { shape.Object.ProfileBegin = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<ushort>("ProfileEnd",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.ProfileEnd; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, ushort value) { shape.Object.ProfileEnd = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<LLVector3>("Scale",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.Scale; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, LLVector3 value) { shape.Object.Scale = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<sbyte>("PathTaperX",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathTaperX; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, sbyte value) { shape.Object.PathTaperX = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<sbyte>("PathTaperY",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathTaperY; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, sbyte value) { shape.Object.PathTaperY = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<sbyte>("PathTwist",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathTwist; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, sbyte value) { shape.Object.PathTwist = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<sbyte>("PathRadiusOffset",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathRadiusOffset; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, sbyte value) { shape.Object.PathRadiusOffset = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathRevolutions",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathRevolutions; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathRevolutions = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<sbyte>("PathTwistBegin",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathTwistBegin; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, sbyte value) { shape.Object.PathTwistBegin = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("PathCurve",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.PathCurve; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.PathCurve = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte>("ProfileCurve",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.ProfileCurve; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte value) { shape.Object.ProfileCurve = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<ushort>("ProfileHollow",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.ProfileHollow; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, ushort value) { shape.Object.ProfileHollow = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte[]>("TextureEntry",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.TextureEntry; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte[] value) { shape.Object.TextureEntry = value; });
|
||||||
|
|
||||||
|
rowMapperSchema.AddMapping<byte[]>("ExtraParams",
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape) { return shape.Object.ExtraParams; },
|
||||||
|
delegate(PrimitiveBaseShapeRowMapper shape, byte[] value) { shape.Object.ExtraParams = value; });
|
||||||
|
}
|
||||||
|
|
||||||
|
public override PrimitiveBaseShapeRowMapper FromReader(DataReader reader)
|
||||||
|
{
|
||||||
|
PrimitiveBaseShape shape = new PrimitiveBaseShape();
|
||||||
|
|
||||||
|
PrimitiveBaseShapeRowMapper mapper = new PrimitiveBaseShapeRowMapper(m_schema, shape);
|
||||||
|
mapper.FillObject( reader );
|
||||||
|
|
||||||
|
return mapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Update(Guid sceneObjectPartId, PrimitiveBaseShape primitiveBaseShape)
|
||||||
|
{
|
||||||
|
PrimitiveBaseShapeRowMapper mapper = CreateRowMapper(sceneObjectPartId, primitiveBaseShape);
|
||||||
|
return Update(sceneObjectPartId, mapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Add(Guid sceneObjectPartId, PrimitiveBaseShape primitiveBaseShape)
|
||||||
|
{
|
||||||
|
PrimitiveBaseShapeRowMapper mapper = CreateRowMapper(sceneObjectPartId, primitiveBaseShape);
|
||||||
|
return Add(mapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PrimitiveBaseShapeRowMapper CreateRowMapper(Guid sceneObjectPartId, PrimitiveBaseShape primitiveBaseShape)
|
||||||
|
{
|
||||||
|
PrimitiveBaseShapeRowMapper mapper = new PrimitiveBaseShapeRowMapper( m_schema, primitiveBaseShape );
|
||||||
|
mapper.SceneObjectPartId = sceneObjectPartId;
|
||||||
|
return mapper;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -61,29 +61,6 @@ namespace TribalMedia.Framework.Data
|
||||||
return (sbyte) m_source.GetInt16(m_source.GetOrdinal(name));
|
return (sbyte) m_source.GetInt16(m_source.GetOrdinal(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
//public Vector3 GetVector(string s)
|
|
||||||
//{
|
|
||||||
// float x = GetFloat(s + "X");
|
|
||||||
// float y = GetFloat(s + "Y");
|
|
||||||
// float z = GetFloat(s + "Z");
|
|
||||||
|
|
||||||
// Vector3 vector = new Vector3(x, y, z);
|
|
||||||
|
|
||||||
// return vector;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//public Quaternion GetQuaternion(string s)
|
|
||||||
//{
|
|
||||||
// float x = GetFloat(s + "X");
|
|
||||||
// float y = GetFloat(s + "Y");
|
|
||||||
// float z = GetFloat(s + "Z");
|
|
||||||
// float w = GetFloat(s + "W");
|
|
||||||
|
|
||||||
// Quaternion quaternion = new Quaternion(x, y, z, w);
|
|
||||||
|
|
||||||
// return quaternion;
|
|
||||||
//}
|
|
||||||
|
|
||||||
public float GetFloat(string name)
|
public float GetFloat(string name)
|
||||||
{
|
{
|
||||||
return m_source.GetFloat(m_source.GetOrdinal(name));
|
return m_source.GetFloat(m_source.GetOrdinal(name));
|
||||||
|
@ -134,7 +111,7 @@ namespace TribalMedia.Framework.Data
|
||||||
return m_source.Read();
|
return m_source.Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
internal Guid GetGuid(string name)
|
public Guid GetGuid(string name)
|
||||||
{
|
{
|
||||||
string guidString = GetString(name);
|
string guidString = GetString(name);
|
||||||
if (String.IsNullOrEmpty(guidString))
|
if (String.IsNullOrEmpty(guidString))
|
||||||
|
|
|
@ -41,7 +41,6 @@ namespace TribalMedia.Framework.Data
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract DbConnection GetNewConnection();
|
public abstract DbConnection GetNewConnection();
|
||||||
|
|
||||||
public abstract string CreateParamName(string fieldName);
|
public abstract string CreateParamName(string fieldName);
|
||||||
|
|
||||||
public DbCommand CreateSelectCommand(TableMapper mapper, DbConnection connection, string fieldName, object key)
|
public DbCommand CreateSelectCommand(TableMapper mapper, DbConnection connection, string fieldName, object key)
|
||||||
|
@ -67,7 +66,7 @@ namespace TribalMedia.Framework.Data
|
||||||
|
|
||||||
DbParameter param = command.CreateParameter();
|
DbParameter param = command.CreateParameter();
|
||||||
param.ParameterName = keyFieldParamName;
|
param.ParameterName = keyFieldParamName;
|
||||||
param.Value = FieldMapper.ConvertToDbType(key);
|
param.Value = ConvertToDbType(key);
|
||||||
command.Parameters.Add(param);
|
command.Parameters.Add(param);
|
||||||
|
|
||||||
return String.Format("{0}={1}", fieldName, keyFieldParamName);
|
return String.Format("{0}={1}", fieldName, keyFieldParamName);
|
||||||
|
@ -131,5 +130,10 @@ namespace TribalMedia.Framework.Data
|
||||||
|
|
||||||
return command;
|
return command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual object ConvertToDbType(object value)
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -78,52 +78,18 @@ namespace TribalMedia.Framework.Data
|
||||||
command.Parameters.Add(param);
|
command.Parameters.Add(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExpandField<TObj>(TObj obj, DbCommand command, List<string> fieldNames)
|
public virtual void ExpandField<TObj>(TObj obj, DbCommand command, List<string> fieldNames)
|
||||||
{
|
{
|
||||||
string fieldName = FieldName;
|
string fieldName = FieldName;
|
||||||
object value = GetParamValue(obj);
|
object value = GetParamValue(obj);
|
||||||
|
|
||||||
//if (ValueType == typeof (Vector3))
|
RawAddParam(command, fieldNames, fieldName, m_tableMapper.ConvertToDbType(value));
|
||||||
//{
|
|
||||||
// Vector3 vector = (Vector3) value;
|
|
||||||
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "X", vector.X);
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "Y", vector.Y);
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "Z", vector.Z);
|
|
||||||
//}
|
|
||||||
//else if (ValueType == typeof (Quaternion))
|
|
||||||
//{
|
|
||||||
// Quaternion quaternion = (Quaternion) value;
|
|
||||||
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "X", quaternion.X);
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "Y", quaternion.Y);
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "Z", quaternion.Z);
|
|
||||||
// RawAddParam(command, fieldNames, fieldName + "W", quaternion.W);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
RawAddParam(command, fieldNames, fieldName, ConvertToDbType(value));
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected object GetValue(DataReader reader)
|
protected virtual object GetValue(DataReader reader)
|
||||||
{
|
{
|
||||||
object value;
|
object value;
|
||||||
//if (ValueType == typeof (Vector3))
|
|
||||||
//{
|
|
||||||
// value = reader.GetVector(m_fieldName);
|
|
||||||
//}
|
|
||||||
//else if (ValueType == typeof (Quaternion))
|
|
||||||
//{
|
|
||||||
// value = reader.GetQuaternion(m_fieldName);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//if (ValueType == typeof(UID))
|
|
||||||
//{
|
|
||||||
// Guid guid = reader.GetGuid(m_fieldName);
|
|
||||||
// value = new UID(guid);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
if (ValueType == typeof(Guid))
|
if (ValueType == typeof(Guid))
|
||||||
{
|
{
|
||||||
value = reader.GetGuid(m_fieldName);
|
value = reader.GetGuid(m_fieldName);
|
||||||
|
@ -162,16 +128,6 @@ namespace TribalMedia.Framework.Data
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static object ConvertToDbType(object value)
|
|
||||||
{
|
|
||||||
//if (value is UID)
|
|
||||||
//{
|
|
||||||
// return (value as UID).UUID.ToString();
|
|
||||||
//}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RowMapperField<TRowMapper, TField> : FieldMapper
|
public class RowMapperField<TRowMapper, TField> : FieldMapper
|
||||||
|
|
|
@ -25,10 +25,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
using TribalMedia.Framework.Data;
|
|
||||||
|
|
||||||
namespace TribalMedia.Framework.Data
|
namespace TribalMedia.Framework.Data
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,13 +62,13 @@ namespace TribalMedia.Framework.Data
|
||||||
get { return m_tableName; }
|
get { return m_tableName; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private Schema m_schema;
|
protected Schema m_schema;
|
||||||
public Schema Schema
|
public Schema Schema
|
||||||
{
|
{
|
||||||
get { return m_schema; }
|
get { return m_schema; }
|
||||||
}
|
}
|
||||||
|
|
||||||
private FieldMapper m_keyFieldMapper;
|
protected FieldMapper m_keyFieldMapper;
|
||||||
public FieldMapper KeyFieldMapper
|
public FieldMapper KeyFieldMapper
|
||||||
{
|
{
|
||||||
get { return m_keyFieldMapper; }
|
get { return m_keyFieldMapper; }
|
||||||
|
@ -104,5 +104,10 @@ namespace TribalMedia.Framework.Data
|
||||||
{
|
{
|
||||||
return m_connectionPool.CreateUpdateCommand(this, connection, rowMapper, primaryKey);
|
return m_connectionPool.CreateUpdateCommand(this, connection, rowMapper, primaryKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public object ConvertToDbType(object value)
|
||||||
|
{
|
||||||
|
return m_connectionPool.ConvertToDbType(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -118,6 +118,7 @@
|
||||||
<Reference name="XMLRPC.dll"/>
|
<Reference name="XMLRPC.dll"/>
|
||||||
<Reference name="libsecondlife.dll"/>
|
<Reference name="libsecondlife.dll"/>
|
||||||
<Reference name="OpenSim.Framework"/>
|
<Reference name="OpenSim.Framework"/>
|
||||||
|
<Reference name="TribalMedia.Framework.Data"/>
|
||||||
<Files>
|
<Files>
|
||||||
<Match pattern="*.cs" recurse="true"/>
|
<Match pattern="*.cs" recurse="true"/>
|
||||||
</Files>
|
</Files>
|
||||||
|
@ -903,6 +904,7 @@
|
||||||
<Reference name="System.Data"/>
|
<Reference name="System.Data"/>
|
||||||
<Reference name="OpenSim.Framework"/>
|
<Reference name="OpenSim.Framework"/>
|
||||||
<Reference name="OpenSim.Framework.Data"/>
|
<Reference name="OpenSim.Framework.Data"/>
|
||||||
|
<Reference name="TribalMedia.Framework.Data"/>
|
||||||
<Reference name="libsecondlife.dll"/>
|
<Reference name="libsecondlife.dll"/>
|
||||||
<Reference name="MySql.Data.dll"/>
|
<Reference name="MySql.Data.dll"/>
|
||||||
<Reference name="OpenSim.Framework.Console"/>
|
<Reference name="OpenSim.Framework.Console"/>
|
||||||
|
|
Loading…
Reference in New Issue