databits are actually flowing to disk

afrisby
Sean Dague 2007-08-08 17:59:16 +00:00
parent 369fb2e623
commit 48ad7ca905
1 changed files with 51 additions and 35 deletions

View File

@ -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