From 667ebc8ea29ba93060eee2506f2875ab78ab6216 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 2 Apr 2008 13:06:18 +0000 Subject: * 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 anyway --- OpenSim/Framework/Data.Base/BaseDataReader.cs | 33 +++++++++++++++++--------- OpenSim/Framework/Data.Base/BaseFieldMapper.cs | 4 ++++ 2 files changed, 26 insertions(+), 11 deletions(-) (limited to 'OpenSim/Framework/Data.Base') diff --git a/OpenSim/Framework/Data.Base/BaseDataReader.cs b/OpenSim/Framework/Data.Base/BaseDataReader.cs index cbaac55..3baefcd 100644 --- a/OpenSim/Framework/Data.Base/BaseDataReader.cs +++ b/OpenSim/Framework/Data.Base/BaseDataReader.cs @@ -31,7 +31,7 @@ using System.IO; namespace OpenSim.Framework.Data.Base { - public class BaseDataReader + public abstract class BaseDataReader { private readonly IDataReader m_source; @@ -112,17 +112,28 @@ namespace OpenSim.Framework.Data.Base return m_source.Read(); } - public Guid GetGuid(string name) + public virtual Guid GetGuid(string name) { - string guidString = GetString(name); - if (String.IsNullOrEmpty(guidString)) - { - return Guid.Empty; - } - else - { - return new Guid(guidString); - } + return m_source.GetGuid(m_source.GetOrdinal(name)); + } + + public UInt32 GetUInt32(string name ) + { + 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; } } } diff --git a/OpenSim/Framework/Data.Base/BaseFieldMapper.cs b/OpenSim/Framework/Data.Base/BaseFieldMapper.cs index ade9266..03c7bfb 100644 --- a/OpenSim/Framework/Data.Base/BaseFieldMapper.cs +++ b/OpenSim/Framework/Data.Base/BaseFieldMapper.cs @@ -108,6 +108,10 @@ namespace OpenSim.Framework.Data.Base { value = reader.GetUShort(m_fieldName); } + else if (ValueType == typeof(uint)) + { + value = reader.GetUInt32(m_fieldName); + } else if (ValueType == typeof(byte[])) { value = reader.GetBytes(m_fieldName); -- cgit v1.1