parent
7a9f5ed6b3
commit
888133e987
|
@ -48,6 +48,7 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
// primDa.FillSchema(ds, SchemaType.Source, "PrimSchema");
|
||||
TestTables(conn);
|
||||
|
||||
lock(ds) {
|
||||
ds.Tables.Add(createPrimTable());
|
||||
setupPrimCommands(primDa, conn);
|
||||
primDa.Fill(ds.Tables["prims"]);
|
||||
|
@ -69,19 +70,19 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID)
|
||||
{
|
||||
lock (ds) {
|
||||
foreach (SceneObjectPart prim in obj.Children.Values)
|
||||
{
|
||||
MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID);
|
||||
addPrim(prim, obj.UUID, regionUUID);
|
||||
}
|
||||
}
|
||||
|
||||
// MainLog.Instance.Verbose("Attempting to do database update....");
|
||||
primDa.Update(ds, "prims");
|
||||
shapeDa.Update(ds, "primshapes");
|
||||
ds.AcceptChanges();
|
||||
Commit();
|
||||
// MainLog.Instance.Verbose("Dump of prims:", ds.GetXml());
|
||||
}
|
||||
|
||||
|
@ -91,6 +92,7 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
DataTable shapes = ds.Tables["primshapes"];
|
||||
|
||||
string selectExp = "SceneGroupID = '" + obj.ToString() + "'";
|
||||
lock (ds) {
|
||||
DataRow[] primRows = prims.Select(selectExp);
|
||||
foreach (DataRow row in primRows)
|
||||
{
|
||||
|
@ -102,9 +104,9 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
}
|
||||
row.Delete();
|
||||
}
|
||||
}
|
||||
|
||||
primDa.Update(ds, "prims");
|
||||
shapeDa.Update(ds, "primshapes");
|
||||
Commit();
|
||||
}
|
||||
|
||||
public List<SceneObjectGroup> LoadObjects(LLUUID regionUUID)
|
||||
|
@ -118,6 +120,8 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
|
||||
string byRegion = "RegionUUID = '" + regionUUID.ToString() + "'";
|
||||
string orderByParent = "ParentID ASC";
|
||||
|
||||
lock (ds) {
|
||||
DataRow[] primsForRegion = prims.Select(byRegion, orderByParent);
|
||||
MainLog.Instance.Verbose("DATASTORE", "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID);
|
||||
|
||||
|
@ -165,7 +169,6 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
MainLog.Instance.Error("DATASTORE", "Failed create prim object, exception and data follows");
|
||||
MainLog.Instance.Verbose(e.ToString());
|
||||
foreach (DataColumn col in prims.Columns)
|
||||
|
@ -174,6 +177,7 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return retvals;
|
||||
}
|
||||
|
||||
|
@ -203,47 +207,19 @@ namespace OpenSim.DataStore.MonoSqlite
|
|||
return new List<Land>();
|
||||
}
|
||||
|
||||
public void Shutdown()
|
||||
public void Commit()
|
||||
{
|
||||
// TODO: DataSet commit
|
||||
lock (ds) {
|
||||
primDa.Update(ds, "prims");
|
||||
shapeDa.Update(ds, "primshapes");
|
||||
ds.AcceptChanges();
|
||||
}
|
||||
}
|
||||
|
||||
// public class TextureBlock
|
||||
// {
|
||||
// public byte[] TextureData;
|
||||
// public byte[] ExtraParams = new byte[1];
|
||||
|
||||
// public TextureBlock(byte[] data)
|
||||
// {
|
||||
// TextureData = data;
|
||||
// }
|
||||
|
||||
// public TextureBlock()
|
||||
// {
|
||||
|
||||
// }
|
||||
|
||||
// public string ToXMLString()
|
||||
// {
|
||||
// StringWriter sw = new StringWriter();
|
||||
// XmlTextWriter writer = new XmlTextWriter(sw);
|
||||
// XmlSerializer serializer = new XmlSerializer(typeof(TextureBlock));
|
||||
// serializer.Serialize(writer, this);
|
||||
// return sw.ToString();
|
||||
// }
|
||||
|
||||
// public static TextureBlock FromXmlString(string xmlData)
|
||||
// {
|
||||
// TextureBlock textureEntry = null;
|
||||
// StringReader sr = new StringReader(xmlData);
|
||||
// XmlTextReader reader = new XmlTextReader(sr);
|
||||
// XmlSerializer serializer = new XmlSerializer(typeof(TextureBlock));
|
||||
// textureEntry = (TextureBlock)serializer.Deserialize(reader);
|
||||
// reader.Close();
|
||||
// sr.Close();
|
||||
// return textureEntry;
|
||||
// }
|
||||
// }
|
||||
public void Shutdown()
|
||||
{
|
||||
Commit();
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue