databits are actually flowing to disk
parent
369fb2e623
commit
48ad7ca905
|
@ -48,7 +48,7 @@ namespace OpenSim.DataStore.SqliteStorage
|
||||||
primDa.Fill(ds, "prims");
|
primDa.Fill(ds, "prims");
|
||||||
DataTable prims = ds.Tables["prims"];
|
DataTable prims = ds.Tables["prims"];
|
||||||
prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] };
|
prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] };
|
||||||
setupPrimCommands(primDa);
|
setupPrimCommands(primDa, conn);
|
||||||
|
|
||||||
shapeDa.FillSchema(ds, SchemaType.Source, "ShapeSchema");
|
shapeDa.FillSchema(ds, SchemaType.Source, "ShapeSchema");
|
||||||
shapeDa.Fill(ds, "primshapes");
|
shapeDa.Fill(ds, "primshapes");
|
||||||
|
@ -56,34 +56,60 @@ namespace OpenSim.DataStore.SqliteStorage
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupPrimCommands(SqliteDataAdapter da)
|
private SqliteParameter createSqliteParameter(string name, DbType type)
|
||||||
{
|
{
|
||||||
SqliteCommand delete = new SqliteCommand("delete from prims where UUID=@UUID");
|
SqliteParameter param = new SqliteParameter();
|
||||||
SqliteParameterCollection parms = delete.Parameters;
|
param.ParameterName = ":" + name;
|
||||||
parms.Add("@UUID", SqlDbType.VarChar);
|
param.DbType = type;
|
||||||
parms["@UUID"].SourceVersion=DataRowVersion.Original;
|
param.SourceColumn = name;
|
||||||
da.DeleteCommand = delete;
|
param.SourceVersion = DataRowVersion.Current;
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupPrimCommands(SqliteDataAdapter da, SqliteConnection conn)
|
||||||
|
{
|
||||||
|
SqliteParameter UUID = createSqliteParameter("UUID", DbType.String);
|
||||||
|
SqliteParameter Name = createSqliteParameter("Name", DbType.String);
|
||||||
|
SqliteParameter CreationDate = createSqliteParameter("CreationDate", DbType.Int32);
|
||||||
|
SqliteParameter PositionX = createSqliteParameter("PositionX", DbType.Double);
|
||||||
|
SqliteParameter PositionY = createSqliteParameter("PositionY", DbType.Double);
|
||||||
|
SqliteParameter PositionZ = createSqliteParameter("PositionZ", DbType.Double);
|
||||||
|
|
||||||
|
|
||||||
string sql = "insert into prims(" +
|
SqliteCommand delete = new SqliteCommand("delete from prims where UUID=:UUID");
|
||||||
|
delete.Connection = conn;
|
||||||
|
|
||||||
|
SqliteCommand insert =
|
||||||
|
new SqliteCommand("insert into prims(" +
|
||||||
"UUID, CreationDate, Name, PositionX, PositionY, PositionZ" +
|
"UUID, CreationDate, Name, PositionX, PositionY, PositionZ" +
|
||||||
") values(@UUID, @CreationDate, @Name, @PositionX, @PositionY, @PositionZ)";
|
") values(:UUID, :CreationDate, :Name, :PositionX, :PositionY, :PositionZ)");
|
||||||
SqliteCommand insert = new SqliteCommand(sql);
|
insert.Connection = conn;
|
||||||
parms = insert.Parameters;
|
|
||||||
parms.Add("@UUID", SqlDbType.VarChar);
|
SqliteCommand update =
|
||||||
parms.Add("@CreationDate", SqlDbType.Int);
|
new SqliteCommand("update prims" +
|
||||||
parms.Add("@Name", SqlDbType.VarChar);
|
"set CreationDate=:CreationDate, Name=:Name, PositionX=:PositionX, " +
|
||||||
parms.Add("@PositionX", SqlDbType.Float);
|
"PositionY=:PositionY, PositionZ=:PositionZ where UUID=:UUID");
|
||||||
parms.Add("@PositionY", SqlDbType.Float);
|
update.Connection = conn;
|
||||||
parms.Add("@PositionZ", SqlDbType.Float);
|
|
||||||
parms["@UUID"].SourceVersion=DataRowVersion.Original;
|
delete.Parameters.Add(UUID);
|
||||||
|
|
||||||
|
insert.Parameters.Add(UUID);
|
||||||
|
insert.Parameters.Add(Name);
|
||||||
|
insert.Parameters.Add(CreationDate);
|
||||||
|
insert.Parameters.Add(PositionX);
|
||||||
|
insert.Parameters.Add(PositionY);
|
||||||
|
insert.Parameters.Add(PositionZ);
|
||||||
|
|
||||||
|
update.Parameters.Add(UUID);
|
||||||
|
update.Parameters.Add(Name);
|
||||||
|
update.Parameters.Add(CreationDate);
|
||||||
|
update.Parameters.Add(PositionX);
|
||||||
|
update.Parameters.Add(PositionY);
|
||||||
|
update.Parameters.Add(PositionZ);
|
||||||
|
|
||||||
|
da.DeleteCommand = delete;
|
||||||
da.InsertCommand = insert;
|
da.InsertCommand = insert;
|
||||||
|
|
||||||
// throw away for now until the rest works
|
|
||||||
string updateSQL = "update prims set name='update'";
|
|
||||||
SqliteCommand update = new SqliteCommand(updateSQL);
|
|
||||||
da.UpdateCommand = update;
|
da.UpdateCommand = update;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StoreSceneObject(SceneObject obj)
|
private void StoreSceneObject(SceneObject obj)
|
||||||
|
@ -126,14 +152,6 @@ namespace OpenSim.DataStore.SqliteStorage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void commit()
|
|
||||||
{
|
|
||||||
DataTable prims = ds.Tables["prims"];
|
|
||||||
DataTable shapes = ds.Tables["shapes"];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StoreObject(SceneObject obj)
|
public void StoreObject(SceneObject obj)
|
||||||
{
|
{
|
||||||
foreach (Primitive prim in obj.Children.Values)
|
foreach (Primitive prim in obj.Children.Values)
|
||||||
|
@ -145,8 +163,6 @@ namespace OpenSim.DataStore.SqliteStorage
|
||||||
MainLog.Instance.Verbose("Dump of prims:", ds.GetXml());
|
MainLog.Instance.Verbose("Dump of prims:", ds.GetXml());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void RemoveObject(LLUUID obj)
|
public void RemoveObject(LLUUID obj)
|
||||||
{
|
{
|
||||||
// TODO: remove code
|
// TODO: remove code
|
||||||
|
|
Loading…
Reference in New Issue