Introduction
This post presents a tool that creates a Word document that contains the schema information of the tables in a SQL server database. It uses SoftArtisans' OfficeWriter. In SQL server, descriptions can be given to columns. Therefore, the documentation can be kept on the SQL server, and with this tool, it may be exported to a Word document.
Background
The documentation of the database is a delivery item in IT projects. This tool creates this documentation automatically, provided the description of the columns is filled-in in the SQL server database.
Using the Code
Compile the project and run it. A form appears, where you may edit the connection string, and the paths to the input and output files. A sample input file is already provided. Press the button Refresh and the list of tables in the database should appear in the grid. Select the tables for which you want the documentation to be created, and press the button Create Doc. The tool will read the InputFile
, append the documentation of the selected tables, and will write the resulting file to OutputFile
. Upon finishing, the OutputFile
is opened. Unfortunately, you must have SoftArtisan's OfficeWriter installed.
Form1
has a PropertyGrid
to which the project settings are bound. This enables the user to change the connection string, and the paths to the input and output files. Form1
has also a DataGridView
to which a dataset
is bound. The project has the typed dataset TablesData
, which is filled with the list of all tables in the database (except the ones containing the word audit
). Upon pressing the button Create Doc, the code loops through all tables and fills the typed dataset PropertiesData
with the column information of each table (method FillTableInfo
). A new paragraph of style Heading 1 is created for each table. Rows in PropertiesData
that have the field ColumnName
empty, are considered table documentation and are written first to the Word document (method WordDocDescriptionFill
). Then a table is appended, some formatting is applied (method WordTableFormat
), the header row is filled-in (method WordTableHeaderFill
) and finally the body of the table is filled-in with the column information in PropertiesData
dataset (method WordTableBodyFill
).
Points of Interest
It might be possible to use Microsoft Word to do this, but I had already used OfficeWriter in another project.
History
- 27th June, 2011: Initial post