* Reworked Data Framework so that MSSQL works
* Introduced uint as field type * Removed what should be superfluous Guid handling * Introduced stub MySQLDataReader if we need to fix the Guid handling anyway0.6.0-stable
parent
0e789a9a01
commit
667ebc8ea2
|
@ -31,7 +31,7 @@ using System.IO;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Data.Base
|
namespace OpenSim.Framework.Data.Base
|
||||||
{
|
{
|
||||||
public class BaseDataReader
|
public abstract class BaseDataReader
|
||||||
{
|
{
|
||||||
private readonly IDataReader m_source;
|
private readonly IDataReader m_source;
|
||||||
|
|
||||||
|
@ -112,17 +112,28 @@ namespace OpenSim.Framework.Data.Base
|
||||||
return m_source.Read();
|
return m_source.Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Guid GetGuid(string name)
|
public virtual Guid GetGuid(string name)
|
||||||
{
|
{
|
||||||
string guidString = GetString(name);
|
return m_source.GetGuid(m_source.GetOrdinal(name));
|
||||||
if (String.IsNullOrEmpty(guidString))
|
|
||||||
{
|
|
||||||
return Guid.Empty;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
public UInt32 GetUInt32(string name )
|
||||||
{
|
{
|
||||||
return new Guid(guidString);
|
return (UInt32)GetInt32(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Int32 GetInt32(string name)
|
||||||
|
{
|
||||||
|
int ordinal = m_source.GetOrdinal(name);
|
||||||
|
int int32 = m_source.GetInt32(ordinal);
|
||||||
|
return int32;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Int64 GetInt64(string name)
|
||||||
|
{
|
||||||
|
int ordinal = m_source.GetOrdinal( name );
|
||||||
|
long int64 = m_source.GetInt64(ordinal);
|
||||||
|
return int64;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,6 +108,10 @@ namespace OpenSim.Framework.Data.Base
|
||||||
{
|
{
|
||||||
value = reader.GetUShort(m_fieldName);
|
value = reader.GetUShort(m_fieldName);
|
||||||
}
|
}
|
||||||
|
else if (ValueType == typeof(uint))
|
||||||
|
{
|
||||||
|
value = reader.GetUInt32(m_fieldName);
|
||||||
|
}
|
||||||
else if (ValueType == typeof(byte[]))
|
else if (ValueType == typeof(byte[]))
|
||||||
{
|
{
|
||||||
value = reader.GetBytes(m_fieldName);
|
value = reader.GetBytes(m_fieldName);
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
using System.Data.SqlClient;
|
using System.Data.SqlClient;
|
||||||
using OpenSim.Framework.Data;
|
using OpenSim.Framework.Data;
|
||||||
|
@ -44,6 +45,18 @@ namespace OpenSim.Framework.Data.MSSQLMapper
|
||||||
return connection;
|
return connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override object ConvertToDbType(object value)
|
||||||
|
{
|
||||||
|
if( value is UInt32 )
|
||||||
|
{
|
||||||
|
UInt32 tmpVal = (UInt32) value;
|
||||||
|
Int64 result = Convert.ToInt64(tmpVal);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.ConvertToDbType(value);
|
||||||
|
}
|
||||||
|
|
||||||
public override string CreateParamName(string fieldName)
|
public override string CreateParamName(string fieldName)
|
||||||
{
|
{
|
||||||
return "@" + fieldName;
|
return "@" + fieldName;
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using System.Text;
|
||||||
|
using OpenSim.Framework.Data.Base;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework.Data.MySQLMapper
|
||||||
|
{
|
||||||
|
public class MySQLDataReader : OpenSimDataReader
|
||||||
|
{
|
||||||
|
public MySQLDataReader(IDataReader source) : base(source)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,9 +25,11 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System.Data;
|
||||||
using System.Data.Common;
|
using System.Data.Common;
|
||||||
using MySql.Data.MySqlClient;
|
using MySql.Data.MySqlClient;
|
||||||
using OpenSim.Framework.Data;
|
using OpenSim.Framework.Data;
|
||||||
|
using OpenSim.Framework.Data.Base;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Data.MySQLMapper
|
namespace OpenSim.Framework.Data.MySQLMapper
|
||||||
{
|
{
|
||||||
|
@ -48,5 +50,10 @@ namespace OpenSim.Framework.Data.MySQLMapper
|
||||||
{
|
{
|
||||||
return "?" + fieldName;
|
return "?" + fieldName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override BaseDataReader CreateReader(IDataReader reader)
|
||||||
|
{
|
||||||
|
return new MySQLDataReader( reader );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -26,11 +26,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Text;
|
|
||||||
using libsecondlife;
|
using libsecondlife;
|
||||||
|
|
||||||
using OpenSim.Framework.Data.Base;
|
using OpenSim.Framework.Data.Base;
|
||||||
|
|
||||||
namespace OpenSim.Framework.Data
|
namespace OpenSim.Framework.Data
|
||||||
|
|
Loading…
Reference in New Issue