MSSqlSchema

Aplikacja generuje schemat bazy danych w formacie xml, który może być wykorzystany do dalszego przetwarzania. Ja używam tych danych z pomocą arkuszy stylów xslt w sposób opisany poniżej. Produkt składa się z aplikacji oraz zestawu arkuszy stylów do tworzenia dokumentacji.

Automatyczne tworzenie dokumentacji serewarea baz danych

Dla przykładu sposób wykorzystania aplikacji do automatycznego tworzenie dokumentacji baz danych lokalnego serwera sql. W pierwszym kroku generujemy xml'a z listą baz danych na serwerze:

MssqlSchema dblist localhost sa sa > dblist.xml

Używając arkusza stylów xslt (list.xsl) tworzymy plik index.htm będący podstawową stroną naszej dokumentacji

msxsl dblist.xml list.xsl > index.htm

I w wyniku otrzymujemy


Mamy wyświetloną listę baz danych dla naszego serwera oraz linki dla każdej z baz do definicji tabel, widoków, procedur i funkcji. Teraz należy przejśc do etapu generowania stron dokumentacji, które będą dopięte do tych linków. Do tego celu posłuży nam mały skrypcik db.cmd. Jego działanie jest bardzo proste. Dla podanej w parametrze bazy danych generuje xml'a z informacją o tabelach, widokach, procedurach i funkcjach. Następnie wykorzystując przygotowane wcześniej arkusze xslt, transformuje dane do html'a.

MssqlSchema dbinfo localhost sa sa %1% > %1%.xml

msxsl %db%.xml table.xsl > %1%_table.htm
msxsl %db%.xml view.xsl > %1%_view.htm
msxsl %db%.xml procedure.xsl > %1%_procedure.htm
msxsl %db%.xml function.xsl > %1%_function.htm

Wywołujemy skrypt dla bazy Testowanie_3

db Testowanie_3

W wyniku działania otrzymamy cztery pliki html, które odpowiadają linkom tables/views/procedures/functions dla tabeli Testowanie_3 Po kliknięciu w wybrany link dla naszej bazy zobaczymy sformatowaną informację o strukturze, np. tabel


Każda z wygenrowanych stron zawiera listę obiektów z linkiem do sczegółów danego obiektu. Poniżej strona z listą procedur i ich parametrami


By zupełnie automatycznie generować dokumentację przy uzyciu MssqlSchema, należy stworzyć skrypt tworzący kompletną dokumentację, który byłby uruchamiany cyklicznie np. raz na dobę nocą lub na żądanie.

@echo off
rem Tworzenie listy baz danych dla index.htm
MssqlSchema dblist localhost sa sa > dblist.xml
msxsl dblist.xml list.xsl > index.htm

rem Tworzenie dokumentacji dla poszczególnych baz z wykorzystaniem
db.cmd
db ElkoTO
db NorthWind
db Testowanie_3

Przykładową dokumentację mozna obejrzeć tutaj

Automatyczne generowanie kodu dla wybranej bazy danych

MssqlSchema ma możliwość tworzenia xml'a w formacie akceptowanym przez napisany przez mnie generator kodu warstwy dostępu do danych. Dzięki temu może być wykorzystany do 'zasilania' danymi generatora. Poniżej skrypt, który wykonuje tą operację dla bazy ElkoTO

rem lokalizacja generatora
set GENCODE=c:\AppDev\WorkDir\chinasoftcodegen\codeGen2.pl
rem Tworzenie xml'a dla generatora kodu
mssqlschema codegen localhost sa sa ElkoTO > codegen.xml
rem Generowania kodu sql
perl %GENCODE% -l sql -d mssql -i xml
rem Generowanie kodu C#
perl %GENCODE% -l C# -d mssql -i xml -e ChinaSoft.DataAccess
set GENCODE=

Wynikiem jego działania są pliki kodu źródłowego sql i c#. Więcej informacji o kodzie i sposobie jego użycia we własnej aplikacji można poczytać pod adresem http://www.codegen.chinasoft.com.pl

A to przykłady trzech plików wygenerowanego kodu:

Device.sql Device.cs DbDevice.cs Ukryj

Pobieranie

Aplikacja jest dostępna do pobranie w dziale Techikalia/Download Technikalia/Download



Komentarze: