Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kompresja .NET XML do przechowywania w bazie danych SQL Server

Ten artykuł może pomóc Ci zacząć.

Poniższy fragment kodu może skompresować ciąg i zwrócić wynik w postaci kodu base-64:

public static string Compress(string text)
{
 byte[] buffer = Encoding.UTF8.GetBytes(text);
 MemoryStream ms = new MemoryStream();
 using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true))
 {
  zip.Write(buffer, 0, buffer.Length);
 }

 ms.Position = 0;
 MemoryStream outStream = new MemoryStream();

 byte[] compressed = new byte[ms.Length];
 ms.Read(compressed, 0, compressed.Length);

 byte[] gzBuffer = new byte[compressed.Length + 4];
 System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
 System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
 return Convert.ToBase64String (gzBuffer);
}

EDYCJA:Na marginesie, możesz chcieć używać formatów CLOB nawet podczas przechowywania XML jako tekstu, ponieważ varchary mają bardzo ograniczoną długość - którą XML często może szybko przekroczyć.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czasami pojawia się wyjątek SqlException:upłynął limit czasu

  2. SYSDATETIMEOFFSET() Przykłady w SQL Server (T-SQL)

  3. Wewnętrzne elementy replikacji transakcyjnej programu SQL Server

  4. Jaki jest właściwy sposób wypełnienia listy DropDownList z bazy danych?

  5. SQL SELECT przyrostowy numer partii co X wierszy