aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs')
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs84
1 files changed, 50 insertions, 34 deletions
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs
index d418a6d..b3d8f14 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.Sqlite/SqliteDataStore.cs
@@ -48,7 +48,7 @@ namespace OpenSim.DataStore.SqliteStorage
48 primDa.Fill(ds, "prims"); 48 primDa.Fill(ds, "prims");
49 DataTable prims = ds.Tables["prims"]; 49 DataTable prims = ds.Tables["prims"];
50 prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; 50 prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] };
51 setupPrimCommands(primDa); 51 setupPrimCommands(primDa, conn);
52 52
53 shapeDa.FillSchema(ds, SchemaType.Source, "ShapeSchema"); 53 shapeDa.FillSchema(ds, SchemaType.Source, "ShapeSchema");
54 shapeDa.Fill(ds, "primshapes"); 54 shapeDa.Fill(ds, "primshapes");
@@ -56,34 +56,60 @@ namespace OpenSim.DataStore.SqliteStorage
56 return; 56 return;
57 } 57 }
58 58
59 private void setupPrimCommands(SqliteDataAdapter da) 59 private SqliteParameter createSqliteParameter(string name, DbType type)
60 { 60 {
61 SqliteCommand delete = new SqliteCommand("delete from prims where UUID=@UUID"); 61 SqliteParameter param = new SqliteParameter();
62 SqliteParameterCollection parms = delete.Parameters; 62 param.ParameterName = ":" + name;
63 parms.Add("@UUID", SqlDbType.VarChar); 63 param.DbType = type;
64 parms["@UUID"].SourceVersion=DataRowVersion.Original; 64 param.SourceColumn = name;
65 da.DeleteCommand = delete; 65 param.SourceVersion = DataRowVersion.Current;
66 return param;
67 }
66 68
69 private void setupPrimCommands(SqliteDataAdapter da, SqliteConnection conn)
70 {
71 SqliteParameter UUID = createSqliteParameter("UUID", DbType.String);
72 SqliteParameter Name = createSqliteParameter("Name", DbType.String);
73 SqliteParameter CreationDate = createSqliteParameter("CreationDate", DbType.Int32);
74 SqliteParameter PositionX = createSqliteParameter("PositionX", DbType.Double);
75 SqliteParameter PositionY = createSqliteParameter("PositionY", DbType.Double);
76 SqliteParameter PositionZ = createSqliteParameter("PositionZ", DbType.Double);
67 77
68 string sql = "insert into prims(" +
69 "UUID, CreationDate, Name, PositionX, PositionY, PositionZ" +
70 ") values(@UUID, @CreationDate, @Name, @PositionX, @PositionY, @PositionZ)";
71 SqliteCommand insert = new SqliteCommand(sql);
72 parms = insert.Parameters;
73 parms.Add("@UUID", SqlDbType.VarChar);
74 parms.Add("@CreationDate", SqlDbType.Int);
75 parms.Add("@Name", SqlDbType.VarChar);
76 parms.Add("@PositionX", SqlDbType.Float);
77 parms.Add("@PositionY", SqlDbType.Float);
78 parms.Add("@PositionZ", SqlDbType.Float);
79 parms["@UUID"].SourceVersion=DataRowVersion.Original;
80 da.InsertCommand = insert;
81 78
82 // throw away for now until the rest works 79 SqliteCommand delete = new SqliteCommand("delete from prims where UUID=:UUID");
83 string updateSQL = "update prims set name='update'"; 80 delete.Connection = conn;
84 SqliteCommand update = new SqliteCommand(updateSQL); 81
85 da.UpdateCommand = update; 82 SqliteCommand insert =
83 new SqliteCommand("insert into prims(" +
84 "UUID, CreationDate, Name, PositionX, PositionY, PositionZ" +
85 ") values(:UUID, :CreationDate, :Name, :PositionX, :PositionY, :PositionZ)");
86 insert.Connection = conn;
87
88 SqliteCommand update =
89 new SqliteCommand("update prims" +
90 "set CreationDate=:CreationDate, Name=:Name, PositionX=:PositionX, " +
91 "PositionY=:PositionY, PositionZ=:PositionZ where UUID=:UUID");
92 update.Connection = conn;
93
94 delete.Parameters.Add(UUID);
95
96 insert.Parameters.Add(UUID);
97 insert.Parameters.Add(Name);
98 insert.Parameters.Add(CreationDate);
99 insert.Parameters.Add(PositionX);
100 insert.Parameters.Add(PositionY);
101 insert.Parameters.Add(PositionZ);
102
103 update.Parameters.Add(UUID);
104 update.Parameters.Add(Name);
105 update.Parameters.Add(CreationDate);
106 update.Parameters.Add(PositionX);
107 update.Parameters.Add(PositionY);
108 update.Parameters.Add(PositionZ);
86 109
110 da.DeleteCommand = delete;
111 da.InsertCommand = insert;
112 da.UpdateCommand = update;
87 } 113 }
88 114
89 private void StoreSceneObject(SceneObject obj) 115 private void StoreSceneObject(SceneObject obj)
@@ -126,14 +152,6 @@ namespace OpenSim.DataStore.SqliteStorage
126 } 152 }
127 } 153 }
128 154
129 private void commit()
130 {
131 DataTable prims = ds.Tables["prims"];
132 DataTable shapes = ds.Tables["shapes"];
133
134
135 }
136
137 public void StoreObject(SceneObject obj) 155 public void StoreObject(SceneObject obj)
138 { 156 {
139 foreach (Primitive prim in obj.Children.Values) 157 foreach (Primitive prim in obj.Children.Values)
@@ -145,8 +163,6 @@ namespace OpenSim.DataStore.SqliteStorage
145 MainLog.Instance.Verbose("Dump of prims:", ds.GetXml()); 163 MainLog.Instance.Verbose("Dump of prims:", ds.GetXml());
146 } 164 }
147 165
148
149
150 public void RemoveObject(LLUUID obj) 166 public void RemoveObject(LLUUID obj)
151 { 167 {
152 // TODO: remove code 168 // TODO: remove code