Click here to Skip to main content
15,891,253 members
Articles / Desktop Programming / Win32

SQL Class Shell Generator

Rate me:
Please Sign up or sign in to vote.
4.87/5 (65 votes)
8 Jan 2009CPOL6 min read 219.3K   3.3K   233  
Generate class shells from SQL Server database tables, (SQL 2005 & 2008 only). Output languages supported: C# and VB.NET.
��<HTML><HEAD>

<META NAME="COPYRIGHT" CONTENT="2008 � Paw Jershauge">

<META NAME="DESCRIPTION" CONTENT="This site contains information about the SQLReader  Class Library.">

<META NAME="AUTHOR" CONTENT="Paw Jershauge">

<META NAME="CODING" CONTENT="Paw Jershauge">

<META NAME="DEVELOPER" CONTENT="Paw Jershauge [http://paw.jershauge.dk]">

<META NAME="GENERATOR" CONTENT="Assembly To HTML by Paw Jershauge">

<LINK REL="STYLESHEET" TYPE="TEXT/CSS" HREF="../dat/msdn2.css"></LINK><SCRIPT LANGUAGE="Javascript1.2" SRC="../dat/jscr.js"></SCRIPT>

<TITLE>SQLReader by Paw Jershauge</TITLE></HEAD><BODY CLASS="typeclass" onunload="wo('../toolbar.htm','TOOLBAR');CurrentObject('...');">

<P CLASS="medium"><IMG SRC="../img/minus.gif" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="midmgR" ID="collapse_expandimg" NAME="collapse_expandimg"><A NAME="collapse_expand" href="#collapse_expand" onclick="plusminustglcontentshowing();tglContent();" CLASS="liketext">Collapse/Expand content</A></P>

SQLReader  Class Library

<H1>Column Public Class</H1>

<P><B>Namespace:</B> <A HREF="SQLReader.htm">SQLReader</A></P>

<P><B>Assembly:</B> <A HREF="SQLReader(1.0.0.0).htm">SQLReader</A> ( in SQLReader.dll )</P>

<P><B>Basetype(s): </B><A HREF="SQLReader.AbstractSQLObject.htm" TARGET="_self">SQLReader.AbstractSQLObject</A></P>

<H3>In this document the following highlight are available:</H3>

<UL><LI><A HREF="#ANAME_PropertyBox">Properties (35)</A></LI><LI><A HREF="#ANAME_SeeAlso_RefBox">See also</A></LI></UL><A NAME="ANAME_PropertyBox"></A><H2 CLASS="clk" onclick="plusminustgl('PropertyBox');"><IMG SRC="../img/minus.gif" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="midmgR" ID="PropertyBoxImg" NAME="PropertyBoxImg">Properties</H2>

<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0" WIDTH="100%" ID="PropertyBox" NAME="PropertyBox"><TR><TD CLASS="tdhead">&nbsp;</TD><TD CLASS="tdhead">Name</TD><TD CLASS="tdhead">Type</TD><TD CLASS="tdhead">Description</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>collation_name</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.String.aspx" TARGET="_blank" CLASS="aRef">String</A></TD><TD CLASS="tditem">Name of the collation of the column if character-based; otherwise, NULL&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>column_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">ID of the column. Is unique within the object.
Column IDs might not be sequential&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>default_object_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">ID of the default object, regardless of whether it is a stand-alone object sys.sp_bindefault [ http://msdn2.microsoft.com/en-us/library/ms177503(printer).aspx ] , or an inline, column-level DEFAULT constraint. The parent_object_id column of an inline column-level default object is a reference back to the table itself.
0 = No default&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>DefaultConstraint</TD><TD CLASS="tditem"><A HREF="SQLReader.DefaultConstraint.htm" TARGET="_self" CLASS="aRef">DefaultConstraint</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>Description</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.String.aspx" TARGET="_blank" CLASS="aRef">String</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>ExtProperties</TD><TD CLASS="tditem"><A HREF="SQLReader.ExtendedProperty.htm" TARGET="_self" CLASS="aRef">ExtendedProperty[]</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>ForeignKey</TD><TD CLASS="tditem"><A HREF="SQLReader.foreign_key.htm" TARGET="_self" CLASS="aRef">foreign_key</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>ForeignKeyColumn</TD><TD CLASS="tditem"><A HREF="SQLReader.foreign_key_column.htm" TARGET="_self" CLASS="aRef">foreign_key_column</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>Identity</TD><TD CLASS="tditem"><A HREF="SQLReader.IdentityColumn.htm" TARGET="_self" CLASS="aRef">IdentityColumn</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_ansi_padded</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column uses ANSI_PADDING ON behavior if character, binary, or variant.
0 = Column is not character, binary, or variant&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_computed</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is a computed column&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_dts_replicated</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is replicated by using SQL Server 2005 Integration Services (SSIS)&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_filestream</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">Reserved for future use&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_identity</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column has identity value&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_merge_published</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is merge-published&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_non_sql_subscribed</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column has a non-SQL Server subscriber&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_nullable</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is nullable&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_replicated</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is replicated&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_rowguidcol</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Column is a declared ROWGUIDCOL&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>is_xml_document</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">1 = Content is a complete XML document.
0 = Content is a document fragment or the column data type is not xml&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>IsForeignKey</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>IsPrimaryKey</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Boolean.aspx" TARGET="_blank" CLASS="aRef">Boolean</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>max_length</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int16.aspx" TARGET="_blank" CLASS="aRef">Int16</A></TD><TD CLASS="tditem">Maximum Length (in bytes) of the column.
-1 = Column data type is varchar(max), nvarchar(max), varbinary(max), or xml.
For text columns, the max_length value will be 16 or the value set by sp_tableoption 'text in row'&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>name</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.String.aspx" TARGET="_blank" CLASS="aRef">String</A></TD><TD CLASS="tditem">Name of the column. Is unique within the object&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>object_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">ID of the object to which this column belongs&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Virtual Property"></TD><TD CLASS="tditem" nowrap>ObjectName</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.String.aspx" TARGET="_blank" CLASS="aRef">String</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>Owner</TD><TD CLASS="tditem"><A HREF="SQLReader.Columns.htm" TARGET="_self" CLASS="aRef">Columns</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>precision</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Byte.aspx" TARGET="_blank" CLASS="aRef">Byte</A></TD><TD CLASS="tditem">Precision of the column if numeric-based; otherwise, 0&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>rule_object_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">ID of the stand-alone rule bound to the column by using sys.sp_bindrule.
0 = No stand-alone rule. For column-level CHECK constraints, see sys.check_constraints (Transact-SQL) [ http://msdn2.microsoft.com/en-us/library/ms187388(printer).aspx ]&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>scale</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Byte.aspx" TARGET="_blank" CLASS="aRef">Byte</A></TD><TD CLASS="tditem">Scale of column if numeric-based; otherwise, 0&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>system_type</TD><TD CLASS="tditem"><A HREF="SQLReader.SQL_Type.htm" TARGET="_self" CLASS="aRef">SQL_Type</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>system_type_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Byte.aspx" TARGET="_blank" CLASS="aRef">Byte</A></TD><TD CLASS="tditem">ID of the system type of the column&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Virtual Property"></TD><TD CLASS="tditem" nowrap>UniqueObjectName</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.String.aspx" TARGET="_blank" CLASS="aRef">String</A></TD><TD CLASS="tditem">&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>user_type_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">ID of the type of the column as defined by the user.
To return the name of the type, join to the sys.types [ http://msdn2.microsoft.com/en-us/library/ms188021(printer).aspx ] catalog view on this column&nbsp;</TD></TR>

<TR><TD CLASS="tditemimg"><IMG SRC="../objimg/Properties.png" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="mid" TITLE="Public Property"></TD><TD CLASS="tditem" nowrap>xml_collection_id</TD><TD CLASS="tditem"><A HREF="http://msdn2.microsoft.com/en-us/library/System.Int32.aspx" TARGET="_blank" CLASS="aRef">Int32</A></TD><TD CLASS="tditem">Nonzero if the data type of the column is xml and the XML is typed. The value will be the ID of the collection containing the validating XML schema namespace of the column.
0 = No XML schema collection&nbsp;</TD></TR>

</TABLE>

<H2 CLASS="clk" onclick="plusminustgl('SeeAlso_RefBox');"><IMG SRC="../img/minus.gif" WIDTH="16" HEIGHT="16" BORDER="0" CLASS="midmgR" ID="SeeAlso_RefBoxImg" NAME="SeeAlso_RefBoxImg">See Also:</H2>

<A NAME="ANAME_SeeAlso_RefBox"></A><DIV ID="SeeAlso_RefBox" NAME="SeeAlso_RefBox">

&bull; <A HREF="SQLReader.AbstractSQLObject.htm" TARGET="_self">SQLReader.AbstractSQLObject</A>

<SPAN>&bull; <A HREF="SQLReader.DefaultConstraint.htm" TARGET="_self">DefaultConstraint</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.SQL_Type.htm" TARGET="_self">SQL_Type</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.IdentityColumn.htm" TARGET="_self">IdentityColumn</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.foreign_key_column.htm" TARGET="_self">foreign_key_column</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.ExtendedProperty.htm" TARGET="_self">ExtendedProperty[]</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.Columns.htm" TARGET="_self">Columns</A></SPAN>&nbsp;&nbsp;

<SPAN>&bull; <A HREF="SQLReader.foreign_key.htm" TARGET="_self">foreign_key</A></SPAN>&nbsp;&nbsp;



</DIV>

<SCRIPT LANGUAGE="Javascript1.2">

parent.MENU.ShDiv('SQLReader(1.0.0.0)_Assembly');

parent.MENU.ShDiv('SQLReader.SQLReader_Namespace');

parent.MENU.ShDiv('SQLReader.SQLReader_Class');

parent.MENU.location=parent.MENU.location + '#SQLReader_SQLReader.Column';

CopyRight('Copyright � Paw Jershauge 2008');

CurrentObject('Column Class');

</SCRIPT>

</BODY></HTML>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Denmark Denmark

Comments and Discussions