aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/MSSQL
diff options
context:
space:
mode:
authorAlexRa2010-04-29 12:26:09 +0300
committerAlexRa2010-05-23 11:47:42 +0300
commitf7bf3facff458325a59483d00d3743eba32679f1 (patch)
tree6646c67779ac5d213cf553f9e5089255751e8159 /OpenSim/Data/MSSQL
parentAll data tests made DBMS-independent (diff)
downloadopensim-SC_OLD-f7bf3facff458325a59483d00d3743eba32679f1.zip
opensim-SC_OLD-f7bf3facff458325a59483d00d3743eba32679f1.tar.gz
opensim-SC_OLD-f7bf3facff458325a59483d00d3743eba32679f1.tar.bz2
opensim-SC_OLD-f7bf3facff458325a59483d00d3743eba32679f1.tar.xz
MSSQLAssetData: fixed some weirdness
Fixed unfinished SQL in FetchAssetMetadataSet, fixed SQL in UpdateAsset (must not modify ID). NOT tested! But apparently shouldn't work worse than the previous version, esp. the FetchMetadata thing.
Diffstat (limited to 'OpenSim/Data/MSSQL')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLAssetData.cs19
1 files changed, 12 insertions, 7 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
index 8475b22..5d1e170 100644
--- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
@@ -210,7 +210,7 @@ namespace OpenSim.Data.MSSQL
210 /// <param name="asset">the asset</param> 210 /// <param name="asset">the asset</param>
211 private void UpdateAsset(AssetBase asset) 211 private void UpdateAsset(AssetBase asset)
212 { 212 {
213 string sql = @"UPDATE assets set id = @id, name = @name, description = @description, assetType = @assetType, 213 string sql = @"UPDATE assets set name = @name, description = @description, assetType = @assetType,
214 local = @local, temporary = @temporary, data = @data 214 local = @local, temporary = @temporary, data = @data
215 WHERE id = @keyId;"; 215 WHERE id = @keyId;";
216 216
@@ -231,14 +231,13 @@ namespace OpenSim.Data.MSSQL
231 using (SqlConnection conn = new SqlConnection(m_connectionString)) 231 using (SqlConnection conn = new SqlConnection(m_connectionString))
232 using (SqlCommand command = new SqlCommand(sql, conn)) 232 using (SqlCommand command = new SqlCommand(sql, conn))
233 { 233 {
234 command.Parameters.Add(m_database.CreateParameter("id", asset.FullID)); 234 command.Parameters.Add(m_database.CreateParameter("keyId", asset.FullID));
235 command.Parameters.Add(m_database.CreateParameter("name", assetName)); 235 command.Parameters.Add(m_database.CreateParameter("name", assetName));
236 command.Parameters.Add(m_database.CreateParameter("description", assetDescription)); 236 command.Parameters.Add(m_database.CreateParameter("description", assetDescription));
237 command.Parameters.Add(m_database.CreateParameter("assetType", asset.Type)); 237 command.Parameters.Add(m_database.CreateParameter("assetType", asset.Type));
238 command.Parameters.Add(m_database.CreateParameter("local", asset.Local)); 238 command.Parameters.Add(m_database.CreateParameter("local", asset.Local));
239 command.Parameters.Add(m_database.CreateParameter("temporary", asset.Temporary)); 239 command.Parameters.Add(m_database.CreateParameter("temporary", asset.Temporary));
240 command.Parameters.Add(m_database.CreateParameter("data", asset.Data)); 240 command.Parameters.Add(m_database.CreateParameter("data", asset.Data));
241 command.Parameters.Add(m_database.CreateParameter("@keyId", asset.FullID));
242 conn.Open(); 241 conn.Open();
243 try 242 try
244 { 243 {
@@ -295,15 +294,21 @@ namespace OpenSim.Data.MSSQL
295 public override List<AssetMetadata> FetchAssetMetadataSet(int start, int count) 294 public override List<AssetMetadata> FetchAssetMetadataSet(int start, int count)
296 { 295 {
297 List<AssetMetadata> retList = new List<AssetMetadata>(count); 296 List<AssetMetadata> retList = new List<AssetMetadata>(count);
298 string sql = @"SELECT (name,description,assetType,temporary,id), Row = ROW_NUMBER() 297 string sql = @"WITH OrderedAssets AS
299 OVER (ORDER BY (some column to order by)) 298 (
300 WHERE Row >= @Start AND Row < @Start + @Count"; 299 SELECT id, name, description, assetType, temporary,
300 Row = ROW_NUMBER() OVER (ORDER BY id)
301 FROM assets
302 )
303 SELECT *
304 FROM OrderedAssets
305 WHERE RowNumber BETWEEN @start AND @stop;";
301 306
302 using (SqlConnection conn = new SqlConnection(m_connectionString)) 307 using (SqlConnection conn = new SqlConnection(m_connectionString))
303 using (SqlCommand cmd = new SqlCommand(sql, conn)) 308 using (SqlCommand cmd = new SqlCommand(sql, conn))
304 { 309 {
305 cmd.Parameters.Add(m_database.CreateParameter("start", start)); 310 cmd.Parameters.Add(m_database.CreateParameter("start", start));
306 cmd.Parameters.Add(m_database.CreateParameter("count", count)); 311 cmd.Parameters.Add(m_database.CreateParameter("stop", start + count - 1));
307 conn.Open(); 312 conn.Open();
308 using (SqlDataReader reader = cmd.ExecuteReader()) 313 using (SqlDataReader reader = cmd.ExecuteReader())
309 { 314 {