Hogyan kell menteni XML dokumentum sql a C # - verem túlcsordulás orosz

Kezdjük azzal, hogy meg kell határozni a séma tárolására használt adatbázis. A „általában vett XML” erre a célra szükséges megválaszolni a kérdést?

Ha a dokumentum lehet betölteni a felhasználói bázis - a legjobb megközelíteni a kérdést, annak tárolási, mint a tároló bármely fájl - azaz tartsa varbinary (max). plusz egy külön oszlopban a fájl nevét egy string, plusz egy oszlop tárolására fájlattribútumok, mint például a létrehozása / módosítás dátuma.

Ha az XML alakul a program belsejében - a legjobb, hogy tartsa a nvarchar (max). nem hoz létre maga a probléma kódolást.

Átalakítás XML-dokumentum meglehetősen egyszerű vonal:

Általában azonban nincs értelme tárolni formájában vonal a teljes dokumentumot - megtartani elég belőle a gyökér elem:

A második út „metélni” általában könnyen visszakereshető XML-nyilatkozatot. A fordított átalakítás nem befolyásolja, mert a gyökér elem maga is érvényes dokumentumot.

Ha úgy dönt, hogy tárolja a dokumentum formájában bájttömböt - mindent válik kissé bonyolultabb:

Ha szükség van, hogy meghatározza egy adott kódolás - szükség lehet használni StreamWriter:

A legegyszerűbb módja:

  1. Készíts egy oszlop tárolására típusú nvarchar (MAX).
  2. Átalakítás xml-fájl húr.
  1. Beírása ez a karakterlánc az adatbázisban (attól függően, hogy a futó adatok)

A hátránya ennek a módszernek, hogy ez xml lenne „halott adat”, amely csak akkor fut a kliens. Sokkal jobb bude típusának beállításához az XML oszlop (ha támogatja az adatbázis - például MS SQL és MySQL), majd meg lehet futtatni a szerveren, de ez egy nagyon tág téma, ami szintén függ az adatbázist.

Válaszol augusztus 23 '16 at 10:55

Azt hiszem, nem helyes, hogy tárolja az adatokat, hogy milyen típusú nvarchar (MAX). Vonal korlátozás nélkül gyakran problémákhoz vezethet. Hogyan kell kódolni? Nem gondolja? - Denis Bubnov augusztus 23 '16 at 11:06

Elvileg helyes, de van egy ellentmondás: ez a módszer működik függetlenül egy külön adatbázist, a fájlnevet és kódolás tárolható külön mezőkben, nvarchar (MAX) elvben korlátozza, ha tudod, hogy a maximális fájlméretet. Szintén az utolsó kérdése TC szoktam egyáltalán varbinary (MAX), amely már általában rossz. És igen típusa XML (rendszer) biztosan jobb, de ez csak akkor működik, egy adott adatbázishoz. - Mirdin augusztus 23 '16 at 11:11

Kapcsolódó cikkek