aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MSSQL/MSSQLRegionData.cs
diff options
context:
space:
mode:
authorCharles Krinke2008-11-19 18:36:04 +0000
committerCharles Krinke2008-11-19 18:36:04 +0000
commit9babdb109504221903464dfa714a445bdf89fa9e (patch)
tree1fdf1b9bc0853094d7f1ec20a635826e22e6aa20 /OpenSim/Data/MSSQL/MSSQLRegionData.cs
parentMantis#2656. Thank you kindly, Nlin for a patch that: (diff)
downloadopensim-SC_OLD-9babdb109504221903464dfa714a445bdf89fa9e.zip
opensim-SC_OLD-9babdb109504221903464dfa714a445bdf89fa9e.tar.gz
opensim-SC_OLD-9babdb109504221903464dfa714a445bdf89fa9e.tar.bz2
opensim-SC_OLD-9babdb109504221903464dfa714a445bdf89fa9e.tar.xz
Mantis#2657. Thank you kindly, StrawberryFride for a patch that:
Added access_time and create_time, plus the new sun position data to MSSQL code.
Diffstat (limited to 'OpenSim/Data/MSSQL/MSSQLRegionData.cs')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLRegionData.cs82
1 files changed, 30 insertions, 52 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
index 95f6037..5faaec4 100644
--- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -101,8 +101,6 @@ namespace OpenSim.Data.MSSQL
101 using (SqlCommand primSelectCmd = new SqlCommand(_PrimSelect, connection)) 101 using (SqlCommand primSelectCmd = new SqlCommand(_PrimSelect, connection))
102 { 102 {
103 primSelectCmd.Parameters.AddWithValue("@RegionUUID", ""); 103 primSelectCmd.Parameters.AddWithValue("@RegionUUID", "");
104 //primSelectCmd.Parameters.AddWithValue("@SceneGroupID", "%");
105 //primSelectCmd.Parameters.AddWithValue("@UUID", "");
106 _PrimDataAdapter = new SqlDataAdapter(primSelectCmd); 104 _PrimDataAdapter = new SqlDataAdapter(primSelectCmd);
107 105
108 DataTable primDataTable = new DataTable("prims"); 106 DataTable primDataTable = new DataTable("prims");
@@ -110,8 +108,7 @@ namespace OpenSim.Data.MSSQL
110 primDataTable.PrimaryKey = new DataColumn[] { primDataTable.Columns["UUID"] }; 108 primDataTable.PrimaryKey = new DataColumn[] { primDataTable.Columns["UUID"] };
111 _PrimsDataSet.Tables.Add(primDataTable); 109 _PrimsDataSet.Tables.Add(primDataTable);
112 110
113 SetupCommands(_PrimDataAdapter); //, connection); 111 SetupCommands(_PrimDataAdapter);
114 //SetupPrimCommands(_PrimDataAdapter, connection);
115 112
116 primDataTable.Clear(); 113 primDataTable.Clear();
117 } 114 }
@@ -119,8 +116,6 @@ namespace OpenSim.Data.MSSQL
119 using (SqlCommand shapeSelectCmd = new SqlCommand(_ShapeSelect, connection)) 116 using (SqlCommand shapeSelectCmd = new SqlCommand(_ShapeSelect, connection))
120 { 117 {
121 shapeSelectCmd.Parameters.AddWithValue("@RegionUUID", ""); 118 shapeSelectCmd.Parameters.AddWithValue("@RegionUUID", "");
122 //shapeSelectCmd.Parameters.AddWithValue("@SceneGroupID", "%");
123 //shapeSelectCmd.Parameters.AddWithValue("@UUID", "");
124 _ShapeDataAdapter = new SqlDataAdapter(shapeSelectCmd); 119 _ShapeDataAdapter = new SqlDataAdapter(shapeSelectCmd);
125 120
126 DataTable shapeDataTable = new DataTable("primshapes"); 121 DataTable shapeDataTable = new DataTable("primshapes");
@@ -128,8 +123,7 @@ namespace OpenSim.Data.MSSQL
128 shapeDataTable.PrimaryKey = new DataColumn[] { shapeDataTable.Columns["UUID"] }; 123 shapeDataTable.PrimaryKey = new DataColumn[] { shapeDataTable.Columns["UUID"] };
129 _PrimsDataSet.Tables.Add(shapeDataTable); 124 _PrimsDataSet.Tables.Add(shapeDataTable);
130 125
131 SetupCommands(_ShapeDataAdapter); //, connection); 126 SetupCommands(_ShapeDataAdapter);
132 //SetupShapeCommands(_ShapeDataAdapter, connection);
133 127
134 shapeDataTable.Clear(); 128 shapeDataTable.Clear();
135 } 129 }
@@ -137,8 +131,6 @@ namespace OpenSim.Data.MSSQL
137 using (SqlCommand itemSelectCmd = new SqlCommand(_ItemsSelect, connection)) 131 using (SqlCommand itemSelectCmd = new SqlCommand(_ItemsSelect, connection))
138 { 132 {
139 itemSelectCmd.Parameters.AddWithValue("@RegionUUID", ""); 133 itemSelectCmd.Parameters.AddWithValue("@RegionUUID", "");
140 //itemSelectCmd.Parameters.AddWithValue("@SceneGroupID", "%");
141 //itemSelectCmd.Parameters.AddWithValue("@UUID", "");
142 _ItemsDataAdapter = new SqlDataAdapter(itemSelectCmd); 134 _ItemsDataAdapter = new SqlDataAdapter(itemSelectCmd);
143 135
144 DataTable itemsDataTable = new DataTable("primitems"); 136 DataTable itemsDataTable = new DataTable("primitems");
@@ -146,8 +138,7 @@ namespace OpenSim.Data.MSSQL
146 itemsDataTable.PrimaryKey = new DataColumn[] { itemsDataTable.Columns["itemID"] }; 138 itemsDataTable.PrimaryKey = new DataColumn[] { itemsDataTable.Columns["itemID"] };
147 _PrimsDataSet.Tables.Add(itemsDataTable); 139 _PrimsDataSet.Tables.Add(itemsDataTable);
148 140
149 SetupCommands(_ItemsDataAdapter); //, connection); 141 SetupCommands(_ItemsDataAdapter);
150 //SetupItemsCommands(_ItemsDataAdapter, connection);
151 142
152 itemsDataTable.Clear(); 143 itemsDataTable.Clear();
153 } 144 }
@@ -328,11 +319,6 @@ namespace OpenSim.Data.MSSQL
328 //Retrieve all values of current region, and current scene/or prims 319 //Retrieve all values of current region, and current scene/or prims
329 //Build primID's, we use IN so I can select all prims from objgroup 320 //Build primID's, we use IN so I can select all prims from objgroup
330 string primID = ""; 321 string primID = "";
331// foreach (SceneObjectPart prim in obj.Children.Values)
332// {
333// primID += prim.UUID + "', '";
334// }
335// primID = primID.Remove(primID.LastIndexOf("',"));
336 322
337 lock (_Database) 323 lock (_Database)
338 { 324 {
@@ -352,14 +338,12 @@ namespace OpenSim.Data.MSSQL
352 DataRow primRow = prims.Rows.Find(prim.UUID.ToString()); 338 DataRow primRow = prims.Rows.Find(prim.UUID.ToString());
353 if (primRow == null) 339 if (primRow == null)
354 { 340 {
355// _Log.DebugFormat("[REGION DB]: Adding new prim with key: {0}", prim.UUID);
356 primRow = prims.NewRow(); 341 primRow = prims.NewRow();
357 fillPrimRow(primRow, prim, obj.UUID, regionUUID); 342 fillPrimRow(primRow, prim, obj.UUID, regionUUID);
358 prims.Rows.Add(primRow); 343 prims.Rows.Add(primRow);
359 } 344 }
360 else 345 else
361 { 346 {
362// _Log.DebugFormat("[REGION DB]: Changing prim with key: {0}", prim.UUID);
363 fillPrimRow(primRow, prim, obj.UUID, regionUUID); 347 fillPrimRow(primRow, prim, obj.UUID, regionUUID);
364 } 348 }
365 349
@@ -440,11 +424,9 @@ namespace OpenSim.Data.MSSQL
440 424
441 using (AutoClosingSqlCommand cmd = _Database.Query(sql)) 425 using (AutoClosingSqlCommand cmd = _Database.Query(sql))
442 { 426 {
443 foreach (TaskInventoryItem newItem in items) 427 foreach (TaskInventoryItem taskItem in items)
444 { 428 {
445 // 429 cmd.Parameters.AddRange(CreatePrimInventoryParameters(taskItem));
446 cmd.Parameters.AddRange(CreatePrimInventoryParameters(newItem));
447
448 cmd.ExecuteNonQuery(); 430 cmd.ExecuteNonQuery();
449 431
450 cmd.Parameters.Clear(); 432 cmd.Parameters.Clear();
@@ -547,7 +529,6 @@ namespace OpenSim.Data.MSSQL
547 { 529 {
548 while (readerLandData.Read()) 530 while (readerLandData.Read())
549 { 531 {
550 // LandData data = buildLandData(readerLandData);
551 landDataForRegion.Add(buildLandData(readerLandData)); 532 landDataForRegion.Add(buildLandData(readerLandData));
552 } 533 }
553 } 534 }
@@ -605,10 +586,9 @@ VALUES
605 { 586 {
606 foreach (ParcelManager.ParcelAccessEntry parcelAccessEntry in parcel.landData.ParcelAccessList) 587 foreach (ParcelManager.ParcelAccessEntry parcelAccessEntry in parcel.landData.ParcelAccessList)
607 { 588 {
608 cmd.Parameters.AddRange(CreateLandAccessParameters(parcelAccessEntry, parcel.regionUUID)); 589 cmd.Parameters.AddRange(CreateLandAccessParameters(parcelAccessEntry, parcel.regionUUID));
609 590
610 cmd.ExecuteNonQuery(); 591 cmd.ExecuteNonQuery();
611
612 cmd.Parameters.Clear(); 592 cmd.Parameters.Clear();
613 } 593 }
614 } 594 }
@@ -699,7 +679,7 @@ VALUES
699,[elevation_1_ne] = @elevation_1_ne ,[elevation_2_ne] = @elevation_2_ne ,[elevation_1_se] = @elevation_1_se ,[elevation_2_se] = @elevation_2_se 679,[elevation_1_ne] = @elevation_1_ne ,[elevation_2_ne] = @elevation_2_ne ,[elevation_1_se] = @elevation_1_se ,[elevation_2_se] = @elevation_2_se
700,[elevation_1_sw] = @elevation_1_sw ,[elevation_2_sw] = @elevation_2_sw ,[water_height] = @water_height ,[terrain_raise_limit] = @terrain_raise_limit 680,[elevation_1_sw] = @elevation_1_sw ,[elevation_2_sw] = @elevation_2_sw ,[water_height] = @water_height ,[terrain_raise_limit] = @terrain_raise_limit
701,[terrain_lower_limit] = @terrain_lower_limit ,[use_estate_sun] = @use_estate_sun ,[fixed_sun] = @fixed_sun ,[sun_position] = @sun_position 681,[terrain_lower_limit] = @terrain_lower_limit ,[use_estate_sun] = @use_estate_sun ,[fixed_sun] = @fixed_sun ,[sun_position] = @sun_position
702,[covenant] = @covenant ,[Sandbox] = @Sandbox WHERE [regionUUID] = @regionUUID"; 682,[covenant] = @covenant , [sunvectorx] = @sunvectorx, [sunvectory] = @sunvectory, [sunvectorz] = @sunvectorz, [Sandbox] = @Sandbox WHERE [regionUUID] = @regionUUID";
703 683
704 using (AutoClosingSqlCommand cmd = _Database.Query(sql)) 684 using (AutoClosingSqlCommand cmd = _Database.Query(sql))
705 { 685 {
@@ -779,13 +759,21 @@ VALUES
779 private void StoreNewRegionSettings(RegionSettings regionSettings) 759 private void StoreNewRegionSettings(RegionSettings regionSettings)
780 { 760 {
781 string sql = @"INSERT INTO [regionsettings] 761 string sql = @"INSERT INTO [regionsettings]
782([regionUUID],[block_terraform],[block_fly],[allow_damage],[restrict_pushing],[allow_land_resell],[allow_land_join_divide],[block_show_in_search],[agent_limit],[object_bonus],[maturity],[disable_scripts],[disable_collisions],[disable_physics],[terrain_texture_1],[terrain_texture_2],[terrain_texture_3],[terrain_texture_4],[elevation_1_nw],[elevation_2_nw],[elevation_1_ne],[elevation_2_ne],[elevation_1_se],[elevation_2_se],[elevation_1_sw],[elevation_2_sw],[water_height],[terrain_raise_limit],[terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[Sandbox]) VALUES 762 ([regionUUID],[block_terraform],[block_fly],[allow_damage],[restrict_pushing],[allow_land_resell],[allow_land_join_divide],
783(@regionUUID,@block_terraform,@block_fly,@allow_damage,@restrict_pushing,@allow_land_resell,@allow_land_join_divide,@block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics,@terrain_texture_1,@terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne,@elevation_2_ne,@elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit,@terrain_lower_limit,@use_estate_sun,@fixed_sun,@sun_position,@covenant,@Sandbox)"; 763 [block_show_in_search],[agent_limit],[object_bonus],[maturity],[disable_scripts],[disable_collisions],[disable_physics],
764 [terrain_texture_1],[terrain_texture_2],[terrain_texture_3],[terrain_texture_4],[elevation_1_nw],[elevation_2_nw],[elevation_1_ne],
765 [elevation_2_ne],[elevation_1_se],[elevation_2_se],[elevation_1_sw],[elevation_2_sw],[water_height],[terrain_raise_limit],
766 [terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[Sandbox])
767 VALUES
768 (@regionUUID,@block_terraform,@block_fly,@allow_damage,@restrict_pushing,@allow_land_resell,@allow_land_join_divide,
769 @block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics,@terrain_texture_1,
770 @terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne,@elevation_2_ne,
771 @elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit,@terrain_lower_limit,
772 @use_estate_sun,@fixed_sun,@sun_position,@covenant,@sunvectorx,@sunvectory, @sunvectorz, @Sandbox)";
784 773
785 using (AutoClosingSqlCommand cmd = _Database.Query(sql)) 774 using (AutoClosingSqlCommand cmd = _Database.Query(sql))
786 { 775 {
787 cmd.Parameters.AddRange(CreateRegionSettingParameters(regionSettings)); 776 cmd.Parameters.AddRange(CreateRegionSettingParameters(regionSettings));
788
789 cmd.ExecuteNonQuery(); 777 cmd.ExecuteNonQuery();
790 } 778 }
791 } 779 }
@@ -835,6 +823,11 @@ VALUES
835 newSettings.Sandbox = Convert.ToBoolean(row["sandbox"]); 823 newSettings.Sandbox = Convert.ToBoolean(row["sandbox"]);
836 newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]); 824 newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]);
837 newSettings.SunPosition = Convert.ToDouble(row["sun_position"]); 825 newSettings.SunPosition = Convert.ToDouble(row["sun_position"]);
826 newSettings.SunVector = new Vector3(
827 Convert.ToSingle(row["sunvectorx"]),
828 Convert.ToSingle(row["sunvectory"]),
829 Convert.ToSingle(row["sunvectorz"])
830 );
838 newSettings.Covenant = new UUID((String)row["covenant"]); 831 newSettings.Covenant = new UUID((String)row["covenant"]);
839 832
840 return newSettings; 833 return newSettings;
@@ -1147,7 +1140,6 @@ VALUES
1147 #endregion 1140 #endregion
1148 1141
1149 #region Create parameters methods 1142 #region Create parameters methods
1150
1151 /// <summary> 1143 /// <summary>
1152 /// Creates the prim inventory parameters. 1144 /// Creates the prim inventory parameters.
1153 /// </summary> 1145 /// </summary>
@@ -1189,7 +1181,7 @@ VALUES
1189 /// <returns></returns> 1181 /// <returns></returns>
1190 private SqlParameter[] CreateRegionSettingParameters(RegionSettings settings) 1182 private SqlParameter[] CreateRegionSettingParameters(RegionSettings settings)
1191 { 1183 {
1192 SqlParameter[] parameters = new SqlParameter[34]; 1184 SqlParameter[] parameters = new SqlParameter[37];
1193 1185
1194 parameters[0] = _Database.CreateParameter("regionUUID", settings.RegionUUID); 1186 parameters[0] = _Database.CreateParameter("regionUUID", settings.RegionUUID);
1195 parameters[1] = _Database.CreateParameter("block_terraform", settings.BlockTerraform); 1187 parameters[1] = _Database.CreateParameter("block_terraform", settings.BlockTerraform);
@@ -1224,7 +1216,10 @@ VALUES
1224 parameters[30] = _Database.CreateParameter("sandbox", settings.Sandbox); 1216 parameters[30] = _Database.CreateParameter("sandbox", settings.Sandbox);
1225 parameters[31] = _Database.CreateParameter("fixed_sun", settings.FixedSun); 1217 parameters[31] = _Database.CreateParameter("fixed_sun", settings.FixedSun);
1226 parameters[32] = _Database.CreateParameter("sun_position", settings.SunPosition); 1218 parameters[32] = _Database.CreateParameter("sun_position", settings.SunPosition);
1227 parameters[33] = _Database.CreateParameter("covenant", settings.Covenant); 1219 parameters[33] = _Database.CreateParameter("sunvectorx", settings.SunVector.X);
1220 parameters[34] = _Database.CreateParameter("sunvectory", settings.SunVector.Y);
1221 parameters[35] = _Database.CreateParameter("sunvectorz", settings.SunVector.Z);
1222 parameters[36] = _Database.CreateParameter("covenant", settings.Covenant);
1228 1223
1229 return parameters; 1224 return parameters;
1230 } 1225 }
@@ -1298,6 +1293,7 @@ VALUES
1298 } 1293 }
1299 1294
1300 /// <summary> 1295 /// <summary>
1296 /// <summary>
1301 /// Fills/Updates the prim datarow. 1297 /// Fills/Updates the prim datarow.
1302 /// </summary> 1298 /// </summary>
1303 /// <param name="row">datarow.</param> 1299 /// <param name="row">datarow.</param>
@@ -1480,34 +1476,16 @@ VALUES
1480 { 1476 {
1481 _PrimDataAdapter.SelectCommand.Connection = connection; 1477 _PrimDataAdapter.SelectCommand.Connection = connection;
1482 _PrimDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString(); 1478 _PrimDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString();
1483// if (sceneGroupID != UUID.Zero)
1484// _PrimDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = sceneGroupID.ToString();
1485// else
1486// _PrimDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = "%";
1487// _PrimDataAdapter.SelectCommand.Parameters["@UUID"].Value = primID;
1488
1489 _PrimDataAdapter.Fill(_PrimsDataSet, "prims"); 1479 _PrimDataAdapter.Fill(_PrimsDataSet, "prims");
1490 1480
1491 _Log.Debug("Prim row count: " + _PrimsDataSet.Tables["prims"].Rows.Count); 1481 _Log.Debug("Prim row count: " + _PrimsDataSet.Tables["prims"].Rows.Count);
1492 1482
1493 _ShapeDataAdapter.SelectCommand.Connection = connection; 1483 _ShapeDataAdapter.SelectCommand.Connection = connection;
1494 _ShapeDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString(); 1484 _ShapeDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString();
1495// if (sceneGroupID != UUID.Zero)
1496// _ShapeDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = sceneGroupID.ToString();
1497// else
1498// _ShapeDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = "%";
1499// _ShapeDataAdapter.SelectCommand.Parameters["@UUID"].Value = primID;
1500
1501 _ShapeDataAdapter.Fill(_PrimsDataSet, "primshapes"); 1485 _ShapeDataAdapter.Fill(_PrimsDataSet, "primshapes");
1502 1486
1503 _ItemsDataAdapter.SelectCommand.Connection = connection; 1487 _ItemsDataAdapter.SelectCommand.Connection = connection;
1504 _ItemsDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString(); 1488 _ItemsDataAdapter.SelectCommand.Parameters["@RegionUUID"].Value = regionUUID.ToString();
1505// if (sceneGroupID != UUID.Zero)
1506// _ItemsDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = sceneGroupID.ToString();
1507// else
1508// _ItemsDataAdapter.SelectCommand.Parameters["@SceneGroupID"].Value = "%";
1509// _ItemsDataAdapter.SelectCommand.Parameters["@UUID"].Value = primID;
1510
1511 _ItemsDataAdapter.Fill(_PrimsDataSet, "primitems"); 1489 _ItemsDataAdapter.Fill(_PrimsDataSet, "primitems");
1512 } 1490 }
1513 } 1491 }