SCM

[#1010760] DataTypes MetaData isn't supported

View Trackers | Feature Requests | Download .csv | Monitor

Date:
2010-02-03 15:14
Priority:
3
State:
Open
Submitted by:
Alaric Dailey (alaric)
Assigned to:
Nobody (None)
Category:
Group:
Resolution:
None
 
Summary:
DataTypes MetaData isn't supported

Detailed description
I was trying to write a piece of code to map the providers specific DbType to the base DbType for a response to one of my articles and found that npgsql doesn't support the metadata I was using.

here is the code

//get our provider factory and connection
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=cars;";
//connect
connection.Open();
//create a parameter to let it do the mapping for us
DbParameter providerParameter = factory.CreateParameter();

//get the type for reflecting
Type parameterType = providerParameter.GetType();
//find the provider specific DbType property
PropertyInfo[] pis =
parameterType.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
PropertyInfo providerDbTypeProperty = null;
foreach (PropertyInfo pi in pis)
{
//ignore the "DbType" property, instead, get the other one
if (pi.Name.IndexOf("DbType") > 0)
{
providerDbTypeProperty = pi;
break;
}
}
if (providerDbTypeProperty == null)
{
throw new Exception("couldn't find providers native DbType");
}

//get our metadata collection
using (DataTable dt = connection.GetSchema(DbMetaDataCollectionNames.DataTypes))
{
DbParameter parameter = providerParameter;
//use the column that provides the number for the value
DataColumn column = dt.Columns[DbMetaDataColumnNames.ProviderDbType];

//create mapping dictionary
Dictionary<string, DbType> dictionary = new Dictionary<string, DbType>();
foreach (DataRow row in dt.Rows)
{
//set a default
parameter.DbType = DbType.Object;
//get value
object value = row[column];
//set the property via reflection
providerDbTypeProperty.SetValue(providerParameter, value, null);
//get the NAME that the provider specifies
string name = Enum.GetName(providerDbTypeProperty.PropertyType, value);
try
{
//add that Name, and mapping over to my dictionary
dictionary.Add(name, parameter.DbType);
}
catch
{
//eat the errors of the duplicates;
}
}
//put a breakpoint here to inspect the dictionary
Debug.WriteLine("stop");
//return it if we want
return dictionary;
}

////////--------------------------------------------------------------

and here is the serialized XML output from the datatable returned from SqlServer (though I know oracle would be better, I don't have an oracle instance)

the columns are Fairly self explanatory when you look at the data, except the ProviderDbType. That value of the enum from the Native type, in the case of SQL Server that is System.Data.SqlClient.SqlDbType for Npgsql it would be NpgsqlDbType;

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<DataTypes>
<TypeName>smallint</TypeName>
<ProviderDbType>16</ProviderDbType>
<ColumnSize>5</ColumnSize>
<CreateFormat>smallint</CreateFormat>
<DataType>System.Int16</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>int</TypeName>
<ProviderDbType>8</ProviderDbType>
<ColumnSize>10</ColumnSize>
<CreateFormat>int</CreateFormat>
<DataType>System.Int32</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>real</TypeName>
<ProviderDbType>13</ProviderDbType>
<ColumnSize>7</ColumnSize>
<CreateFormat>real</CreateFormat>
<DataType>System.Single</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>float</TypeName>
<ProviderDbType>6</ProviderDbType>
<ColumnSize>53</ColumnSize>
<CreateFormat>float({0})</CreateFormat>
<CreateParameters>number of bits used to store the mantissa</CreateParameters>
<DataType>System.Double</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>money</TypeName>
<ProviderDbType>9</ProviderDbType>
<ColumnSize>19</ColumnSize>
<CreateFormat>money</CreateFormat>
<DataType>System.Decimal</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>smallmoney</TypeName>
<ProviderDbType>17</ProviderDbType>
<ColumnSize>10</ColumnSize>
<CreateFormat>smallmoney</CreateFormat>
<DataType>System.Decimal</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>bit</TypeName>
<ProviderDbType>2</ProviderDbType>
<ColumnSize>1</ColumnSize>
<CreateFormat>bit</CreateFormat>
<DataType>System.Boolean</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>tinyint</TypeName>
<ProviderDbType>20</ProviderDbType>
<ColumnSize>3</ColumnSize>
<CreateFormat>tinyint</CreateFormat>
<DataType>System.SByte</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>true</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>bigint</TypeName>
<ProviderDbType>0</ProviderDbType>
<ColumnSize>19</ColumnSize>
<CreateFormat>bigint</CreateFormat>
<DataType>System.Int64</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>timestamp</TypeName>
<ProviderDbType>19</ProviderDbType>
<ColumnSize>8</ColumnSize>
<CreateFormat>timestamp</CreateFormat>
<DataType>System.Byte[]</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>false</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>true</IsConcurrencyType>
<LiteralPrefix>0x</LiteralPrefix>
</DataTypes>
<DataTypes>
<TypeName>binary</TypeName>
<ProviderDbType>1</ProviderDbType>
<ColumnSize>8000</ColumnSize>
<CreateFormat>binary({0})</CreateFormat>
<CreateParameters>length</CreateParameters>
<DataType>System.Byte[]</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>0x</LiteralPrefix>
</DataTypes>
<DataTypes>
<TypeName>image</TypeName>
<ProviderDbType>7</ProviderDbType>
<ColumnSize>2147483647</ColumnSize>
<CreateFormat>image</CreateFormat>
<DataType>System.Byte[]</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>true</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>false</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>0x</LiteralPrefix>
</DataTypes>
<DataTypes>
<TypeName>text</TypeName>
<ProviderDbType>18</ProviderDbType>
<ColumnSize>2147483647</ColumnSize>
<CreateFormat>text</CreateFormat>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>true</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>false</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>ntext</TypeName>
<ProviderDbType>11</ProviderDbType>
<ColumnSize>1073741823</ColumnSize>
<CreateFormat>ntext</CreateFormat>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>true</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>false</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>N'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>decimal</TypeName>
<ProviderDbType>5</ProviderDbType>
<ColumnSize>38</ColumnSize>
<CreateFormat>decimal({0}, {1})</CreateFormat>
<CreateParameters>precision,scale</CreateParameters>
<DataType>System.Decimal</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<MaximumScale>38</MaximumScale>
<MinimumScale>0</MinimumScale>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>numeric</TypeName>
<ProviderDbType>5</ProviderDbType>
<ColumnSize>38</ColumnSize>
<CreateFormat>numeric({0}, {1})</CreateFormat>
<CreateParameters>precision,scale</CreateParameters>
<DataType>System.Decimal</DataType>
<IsAutoIncrementable>true</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsUnsigned>false</IsUnsigned>
<MaximumScale>38</MaximumScale>
<MinimumScale>0</MinimumScale>
<IsConcurrencyType>false</IsConcurrencyType>
</DataTypes>
<DataTypes>
<TypeName>datetime</TypeName>
<ProviderDbType>4</ProviderDbType>
<ColumnSize>23</ColumnSize>
<CreateFormat>datetime</CreateFormat>
<DataType>System.DateTime</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>smalldatetime</TypeName>
<ProviderDbType>15</ProviderDbType>
<ColumnSize>16</ColumnSize>
<CreateFormat>smalldatetime</CreateFormat>
<DataType>System.DateTime</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>sql_variant</TypeName>
<ProviderDbType>23</ProviderDbType>
<CreateFormat>sql_variant</CreateFormat>
<DataType>System.Object</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<IsLiteralSupported>false</IsLiteralSupported>
</DataTypes>
<DataTypes>
<TypeName>xml</TypeName>
<ProviderDbType>25</ProviderDbType>
<ColumnSize>2147483647</ColumnSize>
<CreateFormat>xml</CreateFormat>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>true</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>false</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<IsLiteralSupported>false</IsLiteralSupported>
</DataTypes>
<DataTypes>
<TypeName>varchar</TypeName>
<ProviderDbType>22</ProviderDbType>
<ColumnSize>2147483647</ColumnSize>
<CreateFormat>varchar({0})</CreateFormat>
<CreateParameters>max length</CreateParameters>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>char</TypeName>
<ProviderDbType>3</ProviderDbType>
<ColumnSize>2147483647</ColumnSize>
<CreateFormat>char({0})</CreateFormat>
<CreateParameters>length</CreateParameters>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>nchar</TypeName>
<ProviderDbType>10</ProviderDbType>
<ColumnSize>1073741823</ColumnSize>
<CreateFormat>nchar({0})</CreateFormat>
<CreateParameters>length</CreateParameters>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>N'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>nvarchar</TypeName>
<ProviderDbType>12</ProviderDbType>
<ColumnSize>1073741823</ColumnSize>
<CreateFormat>nvarchar({0})</CreateFormat>
<CreateParameters>max length</CreateParameters>
<DataType>System.String</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>N'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>varbinary</TypeName>
<ProviderDbType>21</ProviderDbType>
<ColumnSize>1073741823</ColumnSize>
<CreateFormat>varbinary({0})</CreateFormat>
<CreateParameters>max length</CreateParameters>
<DataType>System.Byte[]</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>0x</LiteralPrefix>
</DataTypes>
<DataTypes>
<TypeName>uniqueidentifier</TypeName>
<ProviderDbType>14</ProviderDbType>
<ColumnSize>16</ColumnSize>
<CreateFormat>uniqueidentifier</CreateFormat>
<DataType>System.Guid</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>false</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>'</LiteralPrefix>
<LiteralSuffix>'</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>date</TypeName>
<ProviderDbType>31</ProviderDbType>
<ColumnSize>3</ColumnSize>
<CreateFormat>date</CreateFormat>
<DataType>System.DateTime</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>true</IsFixedLength>
<IsFixedPrecisionScale>true</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>time</TypeName>
<ProviderDbType>32</ProviderDbType>
<ColumnSize>5</ColumnSize>
<CreateFormat>time({0})</CreateFormat>
<CreateParameters>scale</CreateParameters>
<DataType>System.TimeSpan</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>false</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<MaximumScale>7</MaximumScale>
<MinimumScale>0</MinimumScale>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>datetime2</TypeName>
<ProviderDbType>33</ProviderDbType>
<ColumnSize>8</ColumnSize>
<CreateFormat>datetime2({0})</CreateFormat>
<CreateParameters>scale</CreateParameters>
<DataType>System.DateTime</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<MaximumScale>7</MaximumScale>
<MinimumScale>0</MinimumScale>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>datetimeoffset</TypeName>
<ProviderDbType>34</ProviderDbType>
<ColumnSize>10</ColumnSize>
<CreateFormat>datetimeoffset({0})</CreateFormat>
<CreateParameters>scale</CreateParameters>
<DataType>System.DateTimeOffset</DataType>
<IsAutoIncrementable>false</IsAutoIncrementable>
<IsBestMatch>true</IsBestMatch>
<IsCaseSensitive>false</IsCaseSensitive>
<IsFixedLength>false</IsFixedLength>
<IsFixedPrecisionScale>false</IsFixedPrecisionScale>
<IsLong>false</IsLong>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsSearchableWithLike>true</IsSearchableWithLike>
<MaximumScale>7</MaximumScale>
<MinimumScale>0</MinimumScale>
<IsConcurrencyType>false</IsConcurrencyType>
<LiteralPrefix>{ts '</LiteralPrefix>
<LiteralSuffix>'}</LiteralSuffix>
</DataTypes>
<DataTypes>
<TypeName>Microsoft.SqlServer.Types.SqlHierarchyId, Microsoft.SqlServer.Types, Version=10.0.0.0, PublicKeyToken=89845dcd8080cc91</TypeName>
<ProviderDbType>29</ProviderDbType>
<ColumnSize>892</ColumnSize>
<IsFixedLength>false</IsFixedLength>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsLiteralSupported>false</IsLiteralSupported>
</DataTypes>
<DataTypes>
<TypeName>Microsoft.SqlServer.Types.SqlGeometry, Microsoft.SqlServer.Types, Version=10.0.0.0, PublicKeyToken=89845dcd8080cc91</TypeName>
<ProviderDbType>29</ProviderDbType>
<ColumnSize>-1</ColumnSize>
<IsFixedLength>false</IsFixedLength>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsLiteralSupported>false</IsLiteralSupported>
</DataTypes>
<DataTypes>
<TypeName>Microsoft.SqlServer.Types.SqlGeography, Microsoft.SqlServer.Types, Version=10.0.0.0, PublicKeyToken=89845dcd8080cc91</TypeName>
<ProviderDbType>29</ProviderDbType>
<ColumnSize>-1</ColumnSize>
<IsFixedLength>false</IsFixedLength>
<IsNullable>true</IsNullable>
<IsSearchable>true</IsSearchable>
<IsLiteralSupported>false</IsLiteralSupported>
</DataTypes>
</DocumentElement>

Followup

No Followups Have Been Posted

Attached Files:

Changes:

No Changes Have Been Made to This Item

Powered By FusionForge