You've already forked linux-packaging-mono
Imported Upstream version 5.4.0.167
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
This commit is contained in:
parent
e49d6f06c0
commit
536cd135cc
@@ -70,10 +70,10 @@ Global
|
||||
{F3E72F35-0351-4D67-9388-725BCAD807BA}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU
|
||||
{F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU
|
||||
{F3E72F35-0351-4D67-9388-725BCAD807BA}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
|
||||
{45DB5F86-7AE3-45C6-870D-F9357B66BDB5}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
|
||||
{AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU
|
||||
{AF78BA88-6428-47EA-8682-442DAF8E9656}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU
|
||||
{AF78BA88-6428-47EA-8682-442DAF8E9656}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\dir.props" />
|
||||
<PropertyGroup>
|
||||
<AssemblyVersion>4.1.2.0</AssemblyVersion>
|
||||
<AssemblyVersion>4.3.0.0</AssemblyVersion>
|
||||
<AssemblyKey>MSFT</AssemblyKey>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -3,9 +3,18 @@
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ref\System.Data.SqlClient.csproj">
|
||||
<SupportedFramework>net463;netcoreapp2.0;$(AllXamarinFrameworks)</SupportedFramework>
|
||||
<SupportedFramework>net461;netcoreapp2.0;$(AllXamarinFrameworks)</SupportedFramework>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\src\System.Data.SqlClient.csproj" />
|
||||
<HarvestIncludePaths Include="ref/net451;lib/net451;runtimes/win/lib/net451" />
|
||||
<HarvestIncludePaths Include="ref/net46;lib/net46;runtimes/win/lib/net46" />
|
||||
<HarvestIncludePaths Include="ref/netstandard1.2">
|
||||
<SupportedFramework>net451;win81;wpa81</SupportedFramework>
|
||||
</HarvestIncludePaths>
|
||||
<HarvestIncludePaths Include="ref/netstandard1.3">
|
||||
<SupportedFramework>net46;netcoreapp1.0</SupportedFramework>
|
||||
</HarvestIncludePaths>
|
||||
<HarvestIncludePaths Include="runtimes/unix/lib/netstandard1.3;runtimes/win/lib/netstandard1.3" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<InboxOnTargetFramework Include="MonoAndroid10" />
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<BuildConfigurations>
|
||||
netstandard;
|
||||
netfx;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -7,25 +7,6 @@
|
||||
|
||||
namespace System.Data.SqlClient
|
||||
{
|
||||
// Declaring members from stripped base class CollectionBase
|
||||
public sealed partial class SqlBulkCopyColumnMappingCollection : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList
|
||||
{
|
||||
public int Count { get { throw null; } }
|
||||
bool System.Collections.ICollection.IsSynchronized { get { throw null; } }
|
||||
object System.Collections.ICollection.SyncRoot { get { throw null; } }
|
||||
bool System.Collections.IList.IsFixedSize { get { throw null; } }
|
||||
bool System.Collections.IList.IsReadOnly { get { throw null; } }
|
||||
object System.Collections.IList.this[int index] { get { throw null; } set { } }
|
||||
public void Clear() { }
|
||||
public System.Collections.IEnumerator GetEnumerator() { throw null; }
|
||||
public void RemoveAt(int index) { }
|
||||
void System.Collections.ICollection.CopyTo(System.Array array, int index) { }
|
||||
int System.Collections.IList.Add(object value) { throw null; }
|
||||
bool System.Collections.IList.Contains(object value) { throw null; }
|
||||
int System.Collections.IList.IndexOf(object value) { throw null; }
|
||||
void System.Collections.IList.Insert(int index, object value) { }
|
||||
void System.Collections.IList.Remove(object value) { }
|
||||
}
|
||||
public sealed partial class SqlCommand : System.Data.Common.DbCommand
|
||||
{
|
||||
// SqlCommand expects IDisposable methods to be implemented via System.ComponentModel.Component, which it no longer inherits from
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
namespace Microsoft.SqlServer.Server
|
||||
{
|
||||
public partial class SqlDataRecord
|
||||
public partial class SqlDataRecord : System.Data.IDataRecord
|
||||
{
|
||||
public SqlDataRecord(params Microsoft.SqlServer.Server.SqlMetaData[] metaData) { }
|
||||
public virtual int FieldCount { get { throw null; } }
|
||||
@@ -43,6 +43,7 @@ namespace Microsoft.SqlServer.Server
|
||||
public virtual long GetBytes(int ordinal, long fieldOffset, byte[] buffer, int bufferOffset, int length) { throw null; }
|
||||
public virtual char GetChar(int ordinal) { throw null; }
|
||||
public virtual long GetChars(int ordinal, long fieldOffset, char[] buffer, int bufferOffset, int length) { throw null; }
|
||||
System.Data.IDataReader System.Data.IDataRecord.GetData(int ordinal) { throw null; }
|
||||
public virtual string GetDataTypeName(int ordinal) { throw null; }
|
||||
public virtual System.DateTime GetDateTime(int ordinal) { throw null; }
|
||||
public virtual System.DateTimeOffset GetDateTimeOffset(int ordinal) { throw null; }
|
||||
@@ -183,6 +184,17 @@ namespace Microsoft.SqlServer.Server
|
||||
public static Microsoft.SqlServer.Server.SqlMetaData InferFromValue(object value, string name) { throw null; }
|
||||
}
|
||||
}
|
||||
namespace System.Data.Sql
|
||||
{
|
||||
public sealed partial class SqlNotificationRequest
|
||||
{
|
||||
public SqlNotificationRequest() { }
|
||||
public SqlNotificationRequest(string userData, string options, int timeout) { }
|
||||
public string Options { get { throw null; } set { } }
|
||||
public int Timeout { get { throw null; } set { } }
|
||||
public string UserData { get { throw null; } set { } }
|
||||
}
|
||||
}
|
||||
namespace System.Data.SqlClient
|
||||
{
|
||||
public enum ApplicationIntent
|
||||
@@ -212,8 +224,20 @@ namespace System.Data.SqlClient
|
||||
public void Close() { }
|
||||
void System.IDisposable.Dispose() { }
|
||||
public void WriteToServer(System.Data.Common.DbDataReader reader) { }
|
||||
public void WriteToServer(System.Data.IDataReader reader) { }
|
||||
public void WriteToServer(System.Data.DataTable table) { }
|
||||
public void WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) { }
|
||||
public void WriteToServer(System.Data.DataRow[] rows) { }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataRow[] rows, System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.IDataReader reader, System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState) { throw null; }
|
||||
public System.Threading.Tasks.Task WriteToServerAsync(System.Data.DataTable table, System.Data.DataRowState rowState, System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
}
|
||||
public sealed partial class SqlBulkCopyColumnMapping
|
||||
{
|
||||
@@ -227,7 +251,7 @@ namespace System.Data.SqlClient
|
||||
public string SourceColumn { get { throw null; } set { } }
|
||||
public int SourceOrdinal { get { throw null; } set { } }
|
||||
}
|
||||
public sealed partial class SqlBulkCopyColumnMappingCollection
|
||||
public sealed partial class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase
|
||||
{
|
||||
internal SqlBulkCopyColumnMappingCollection() { }
|
||||
public System.Data.SqlClient.SqlBulkCopyColumnMapping this[int index] { get { throw null; } }
|
||||
@@ -260,9 +284,26 @@ namespace System.Data.SqlClient
|
||||
public override System.Data.Common.DbCommand CreateCommand() { throw null; }
|
||||
public override System.Data.Common.DbConnection CreateConnection() { throw null; }
|
||||
public override System.Data.Common.DbConnectionStringBuilder CreateConnectionStringBuilder() { throw null; }
|
||||
public override System.Data.Common.DbDataAdapter CreateDataAdapter() { throw null; }
|
||||
public override System.Data.Common.DbParameter CreateParameter() { throw null; }
|
||||
}
|
||||
public sealed partial class SqlCommand : System.Data.Common.DbCommand
|
||||
public static partial class SqlClientMetaDataCollectionNames
|
||||
{
|
||||
public static readonly string Columns;
|
||||
public static readonly string Databases;
|
||||
public static readonly string ForeignKeys;
|
||||
public static readonly string IndexColumns;
|
||||
public static readonly string Indexes;
|
||||
public static readonly string Parameters;
|
||||
public static readonly string ProcedureColumns;
|
||||
public static readonly string Procedures;
|
||||
public static readonly string Tables;
|
||||
public static readonly string UserDefinedTypes;
|
||||
public static readonly string Users;
|
||||
public static readonly string ViewColumns;
|
||||
public static readonly string Views;
|
||||
}
|
||||
public sealed partial class SqlCommand : System.Data.Common.DbCommand, System.ICloneable
|
||||
{
|
||||
public SqlCommand() { }
|
||||
public SqlCommand(string cmdText) { }
|
||||
@@ -281,6 +322,8 @@ namespace System.Data.SqlClient
|
||||
public override System.Data.UpdateRowSource UpdatedRowSource { get { throw null; } set { } }
|
||||
public event System.Data.StatementCompletedEventHandler StatementCompleted { add { } remove { } }
|
||||
public override void Cancel() { }
|
||||
object System.ICloneable.Clone() { throw null; }
|
||||
public SqlCommand Clone() { throw null; }
|
||||
protected override System.Data.Common.DbParameter CreateDbParameter() { throw null; }
|
||||
public new System.Data.SqlClient.SqlParameter CreateParameter() { throw null; }
|
||||
protected override System.Data.Common.DbDataReader ExecuteDbDataReader(System.Data.CommandBehavior behavior) { throw null; }
|
||||
@@ -299,12 +342,14 @@ namespace System.Data.SqlClient
|
||||
public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync() { throw null; }
|
||||
public System.Threading.Tasks.Task<System.Xml.XmlReader> ExecuteXmlReaderAsync(System.Threading.CancellationToken cancellationToken) { throw null; }
|
||||
public override void Prepare() { }
|
||||
public System.Data.Sql.SqlNotificationRequest Notification { get { throw null; } set { } }
|
||||
}
|
||||
public sealed partial class SqlConnection : System.Data.Common.DbConnection
|
||||
public sealed partial class SqlConnection : System.Data.Common.DbConnection, System.ICloneable
|
||||
{
|
||||
public SqlConnection() { }
|
||||
public SqlConnection(string connectionString) { }
|
||||
public System.Guid ClientConnectionId { get { throw null; } }
|
||||
object ICloneable.Clone() { throw null; }
|
||||
public override string ConnectionString { get { throw null; } set { } }
|
||||
public override int ConnectionTimeout { get { throw null; } }
|
||||
public override string Database { get { throw null; } }
|
||||
@@ -372,6 +417,108 @@ namespace System.Data.SqlClient
|
||||
public override bool ShouldSerialize(string keyword) { throw null; }
|
||||
public override bool TryGetValue(string keyword, out object value) { throw null; }
|
||||
}
|
||||
public sealed partial class SqlDataAdapter : System.Data.Common.DbDataAdapter, System.Data.IDbDataAdapter, System.ICloneable
|
||||
{
|
||||
public SqlDataAdapter() { }
|
||||
public SqlDataAdapter(SqlCommand selectCommand) { }
|
||||
public SqlDataAdapter(string selectCommandText, string selectConnectionString) { }
|
||||
public SqlDataAdapter(string selectCommandText, SqlConnection selectConnection) { }
|
||||
new public SqlCommand DeleteCommand { get { throw null; } set { } }
|
||||
new public SqlCommand InsertCommand { get { throw null; } set { } }
|
||||
new public SqlCommand SelectCommand { get { throw null; } set { } }
|
||||
System.Data.IDbCommand System.Data.IDbDataAdapter.DeleteCommand { get { throw null; } set { } }
|
||||
System.Data.IDbCommand System.Data.IDbDataAdapter.InsertCommand { get { throw null; } set { } }
|
||||
System.Data.IDbCommand System.Data.IDbDataAdapter.SelectCommand { get { throw null; } set { } }
|
||||
System.Data.IDbCommand System.Data.IDbDataAdapter.UpdateCommand { get { throw null; } set { } }
|
||||
override public int UpdateBatchSize { get { throw null; } set { } }
|
||||
new public SqlCommand UpdateCommand { get { throw null; } set { } }
|
||||
public event SqlRowUpdatedEventHandler RowUpdated { add { } remove { } }
|
||||
public event SqlRowUpdatingEventHandler RowUpdating { add { } remove { } }
|
||||
protected override void OnRowUpdated(System.Data.Common.RowUpdatedEventArgs value) { }
|
||||
protected override void OnRowUpdating(System.Data.Common.RowUpdatingEventArgs value) { }
|
||||
object System.ICloneable.Clone() { throw null; }
|
||||
}
|
||||
public sealed partial class SqlDependency
|
||||
{
|
||||
public SqlDependency() { }
|
||||
public SqlDependency(SqlCommand command) { }
|
||||
public SqlDependency(SqlCommand command, string options, int timeout) { }
|
||||
public bool HasChanges { get { throw null; } }
|
||||
public string Id { get { throw null; } }
|
||||
public event OnChangeEventHandler OnChange { add { } remove { } }
|
||||
public void AddCommandDependency(SqlCommand command) { }
|
||||
public static bool Start(string connectionString) { throw null; }
|
||||
public static bool Start(string connectionString, string queue) { throw null; }
|
||||
public static bool Stop(string connectionString) { throw null; }
|
||||
public static bool Stop(string connectionString, string queue) { throw null; }
|
||||
}
|
||||
public delegate void OnChangeEventHandler(object sender, SqlNotificationEventArgs e);
|
||||
public partial class SqlNotificationEventArgs : System.EventArgs
|
||||
{
|
||||
public SqlNotificationEventArgs(SqlNotificationType type, SqlNotificationInfo info, SqlNotificationSource source) { }
|
||||
public SqlNotificationType Type { get { throw null; } }
|
||||
public SqlNotificationInfo Info { get { throw null; } }
|
||||
public SqlNotificationSource Source { get { throw null; } }
|
||||
}
|
||||
public enum SqlNotificationInfo
|
||||
{
|
||||
Truncate = 0,
|
||||
Insert = 1,
|
||||
Update = 2,
|
||||
Delete = 3,
|
||||
Drop = 4,
|
||||
Alter = 5,
|
||||
Restart = 6,
|
||||
Error = 7,
|
||||
Query = 8,
|
||||
Invalid = 9,
|
||||
Options = 10,
|
||||
Isolation = 11,
|
||||
Expired = 12,
|
||||
Resource = 13,
|
||||
PreviousFire = 14,
|
||||
TemplateLimit = 15,
|
||||
Merge = 16,
|
||||
Unknown = -1,
|
||||
AlreadyChanged = -2
|
||||
}
|
||||
public enum SqlNotificationSource
|
||||
{
|
||||
Data = 0,
|
||||
Timeout = 1,
|
||||
Object = 2,
|
||||
Database = 3,
|
||||
System = 4,
|
||||
Statement = 5,
|
||||
Environment = 6,
|
||||
Execution = 7,
|
||||
Owner = 8,
|
||||
Unknown = -1,
|
||||
Client = -2
|
||||
}
|
||||
public enum SqlNotificationType
|
||||
{
|
||||
Change = 0,
|
||||
Subscribe = 1,
|
||||
Unknown = -1
|
||||
}
|
||||
public sealed partial class SqlRowUpdatedEventArgs : System.Data.Common.RowUpdatedEventArgs
|
||||
{
|
||||
public SqlRowUpdatedEventArgs(DataRow row, IDbCommand command, StatementType statementType, System.Data.Common.DataTableMapping tableMapping)
|
||||
: base(row, command, statementType, tableMapping) { }
|
||||
|
||||
new public SqlCommand Command { get { throw null; } }
|
||||
}
|
||||
public delegate void SqlRowUpdatedEventHandler(object sender, SqlRowUpdatedEventArgs e);
|
||||
public sealed partial class SqlRowUpdatingEventArgs : System.Data.Common.RowUpdatingEventArgs
|
||||
{
|
||||
public SqlRowUpdatingEventArgs(DataRow row, IDbCommand command, StatementType statementType, System.Data.Common.DataTableMapping tableMapping)
|
||||
: base(row, command, statementType, tableMapping) { }
|
||||
|
||||
new public SqlCommand Command { get { throw null; } set { } }
|
||||
protected override System.Data.IDbCommand BaseCommand { get { throw null; } set { } }
|
||||
}
|
||||
public delegate void SqlRowUpdatingEventHandler(object sender, SqlRowUpdatingEventArgs e);
|
||||
public partial class SqlDataReader : System.Data.Common.DbDataReader, System.IDisposable
|
||||
{
|
||||
internal SqlDataReader() { }
|
||||
@@ -488,13 +635,15 @@ namespace System.Data.SqlClient
|
||||
public override string ToString() { throw null; }
|
||||
}
|
||||
public delegate void SqlInfoMessageEventHandler(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs e);
|
||||
public sealed partial class SqlParameter : System.Data.Common.DbParameter
|
||||
public sealed partial class SqlParameter : System.Data.Common.DbParameter, System.ICloneable
|
||||
{
|
||||
public SqlParameter() { }
|
||||
public SqlParameter(string parameterName, System.Data.SqlDbType dbType) { }
|
||||
public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size) { }
|
||||
public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, string sourceColumn) { }
|
||||
public SqlParameter(string parameterName, object value) { }
|
||||
public SqlParameter(string parameterName, System.Data.SqlDbType dbType, int size, System.Data.ParameterDirection direction, byte precision, byte scale, string sourceColumn, System.Data.DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName) { }
|
||||
object ICloneable.Clone() { throw null; }
|
||||
public System.Data.SqlTypes.SqlCompareOptions CompareInfo { get { throw null; } set { } }
|
||||
public override System.Data.DbType DbType { get { throw null; } set { } }
|
||||
public override System.Data.ParameterDirection Direction { get { throw null; } set { } }
|
||||
@@ -507,6 +656,7 @@ namespace System.Data.SqlClient
|
||||
public override int Size { get { throw null; } set { } }
|
||||
public override string SourceColumn { get { throw null; } set { } }
|
||||
public override bool SourceColumnNullMapping { get { throw null; } set { } }
|
||||
public override DataRowVersion SourceVersion { get { throw null; } set { } }
|
||||
public System.Data.SqlDbType SqlDbType { get { throw null; } set { } }
|
||||
public object SqlValue { get { throw null; } set { } }
|
||||
public string TypeName { get { throw null; } set { } }
|
||||
@@ -573,3 +723,10 @@ namespace System.Data.SqlClient
|
||||
public void Save(string savePointName) { }
|
||||
}
|
||||
}
|
||||
namespace System.Data
|
||||
{
|
||||
public sealed partial class OperationAbortedException : System.SystemException
|
||||
{
|
||||
internal OperationAbortedException() { }
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,21 @@
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{D58E8D2B-3331-4660-8DFB-512D66F8EC63}</ProjectGuid>
|
||||
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'netfx'">true</IsPartialFacadeAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netfx-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netfx-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Release|AnyCPU'" />
|
||||
<ItemGroup>
|
||||
<Compile Include="System.Data.SqlClient.cs" />
|
||||
<Compile Include="System.Data.SqlClient.Manual.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'netfx'">
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
</Project>
|
||||
@@ -4,6 +4,10 @@
|
||||
<BuildConfigurations>
|
||||
netstandard-Unix;
|
||||
netstandard-Windows_NT;
|
||||
netstandard1.2;
|
||||
netstandard1.3;
|
||||
netstandard;
|
||||
netfx-Windows_NT;
|
||||
</BuildConfigurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -68,6 +68,7 @@ namespace Microsoft.SqlServer.Server
|
||||
SqlDbType.NVarChar, // System.Data.SqlTypes.SqlChars
|
||||
SqlDbType.VarBinary, // System.Data.SqlTypes.SqlBytes
|
||||
SqlDbType.Xml, // System.Data.SqlTypes.SqlXml
|
||||
SqlDbType.Structured, // System.Data.DataTable
|
||||
SqlDbType.Structured, // System.Collections.IEnumerable, used for TVPs it must return IDataRecord
|
||||
SqlDbType.Structured, // System.Collections.Generic.IEnumerable<Microsoft.SqlServer.Server.SqlDataRecord>
|
||||
SqlDbType.Time, // System.TimeSpan
|
||||
@@ -121,12 +122,12 @@ namespace Microsoft.SqlServer.Server
|
||||
{ typeof(SqlChars), ExtendedClrTypeCode.SqlChars },
|
||||
{ typeof(SqlBytes), ExtendedClrTypeCode.SqlBytes },
|
||||
{ typeof(SqlXml), ExtendedClrTypeCode.SqlXml },
|
||||
{ typeof(DataTable), ExtendedClrTypeCode.DataTable },
|
||||
{ typeof(DbDataReader), ExtendedClrTypeCode.DbDataReader },
|
||||
{ typeof(IEnumerable<SqlDataRecord>), ExtendedClrTypeCode.IEnumerableOfSqlDataRecord },
|
||||
{ typeof(TimeSpan), ExtendedClrTypeCode.TimeSpan },
|
||||
{ typeof(DateTimeOffset), ExtendedClrTypeCode.DateTimeOffset },
|
||||
};
|
||||
Debug.Assert(dictionary.Count == Count);
|
||||
return dictionary;
|
||||
}
|
||||
|
||||
@@ -168,8 +169,6 @@ namespace Microsoft.SqlServer.Server
|
||||
metaData.SqlDbType == SqlDbType.Udt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// If we know we're only going to use this object to assign to a specific SqlDbType back end object,
|
||||
// we can save some processing time by only checking for the few valid types that can be assigned to the dbType.
|
||||
// This assumes a switch statement over SqlDbType is faster than getting the ClrTypeCode and iterating over a
|
||||
@@ -336,7 +335,11 @@ namespace Microsoft.SqlServer.Server
|
||||
case SqlDbType.Structured:
|
||||
if (isMultiValued)
|
||||
{
|
||||
if (value is IEnumerable<SqlDataRecord>)
|
||||
if (value is DataTable)
|
||||
{
|
||||
extendedCode = ExtendedClrTypeCode.DataTable;
|
||||
}
|
||||
else if (value is IEnumerable<SqlDataRecord>)
|
||||
{
|
||||
extendedCode = ExtendedClrTypeCode.IEnumerableOfSqlDataRecord;
|
||||
}
|
||||
@@ -413,7 +416,6 @@ namespace Microsoft.SqlServer.Server
|
||||
return returnType;
|
||||
}
|
||||
|
||||
|
||||
internal static SqlMetaData SmiExtendedMetaDataToSqlMetaData(SmiExtendedMetaData source)
|
||||
{
|
||||
if (SqlDbType.Xml == source.SqlDbType)
|
||||
@@ -443,7 +445,6 @@ namespace Microsoft.SqlServer.Server
|
||||
}
|
||||
|
||||
// Convert SqlMetaData instance to an SmiExtendedMetaData instance.
|
||||
|
||||
internal static SmiExtendedMetaData SqlMetaDataToSmiExtendedMetaData(SqlMetaData source)
|
||||
{
|
||||
// now map everything across to the extended metadata object
|
||||
@@ -474,7 +475,6 @@ namespace Microsoft.SqlServer.Server
|
||||
typeSpecificNamePart3);
|
||||
}
|
||||
|
||||
|
||||
// compare SmiMetaData to SqlMetaData and determine if they are compatible.
|
||||
internal static bool IsCompatible(SmiMetaData firstMd, SqlMetaData secondMd)
|
||||
{
|
||||
@@ -488,15 +488,212 @@ namespace Microsoft.SqlServer.Server
|
||||
!firstMd.IsMultiValued; // SqlMetaData doesn't have a "multivalued" option
|
||||
}
|
||||
|
||||
// This is a modified version of SmiMetaDataFromSchemaTableRow above
|
||||
// Since CoreCLR doesn't have GetSchema, we need to infer the MetaData from the CLR Type alone
|
||||
internal static SmiExtendedMetaData SmiMetaDataFromType(string colName, Type colType)
|
||||
// Extract metadata for a single DataColumn
|
||||
internal static SmiExtendedMetaData SmiMetaDataFromDataColumn(DataColumn column, DataTable parent)
|
||||
{
|
||||
SqlDbType dbType = InferSqlDbTypeFromType_Katmai(column.DataType);
|
||||
if (InvalidSqlDbType == dbType)
|
||||
{
|
||||
throw SQL.UnsupportedColumnTypeForSqlProvider(column.ColumnName, column.DataType.Name);
|
||||
}
|
||||
|
||||
long maxLength = AdjustMaxLength(dbType, column.MaxLength);
|
||||
if (InvalidMaxLength == maxLength)
|
||||
{
|
||||
throw SQL.InvalidColumnMaxLength(column.ColumnName, maxLength);
|
||||
}
|
||||
|
||||
byte precision;
|
||||
byte scale;
|
||||
if (column.DataType == typeof(SqlDecimal))
|
||||
{
|
||||
// Must scan all values in column to determine best-fit precision & scale
|
||||
Debug.Assert(null != parent);
|
||||
scale = 0;
|
||||
byte nonFractionalPrecision = 0; // finds largest non-Fractional portion of precision
|
||||
foreach (DataRow row in parent.Rows)
|
||||
{
|
||||
object obj = row[column];
|
||||
if (!(obj is DBNull))
|
||||
{
|
||||
SqlDecimal value = (SqlDecimal)obj;
|
||||
if (!value.IsNull)
|
||||
{
|
||||
byte tempNonFractPrec = checked((byte)(value.Precision - value.Scale));
|
||||
if (tempNonFractPrec > nonFractionalPrecision)
|
||||
{
|
||||
nonFractionalPrecision = tempNonFractPrec;
|
||||
}
|
||||
|
||||
if (value.Scale > scale)
|
||||
{
|
||||
scale = value.Scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
precision = checked((byte)(nonFractionalPrecision + scale));
|
||||
|
||||
if (SqlDecimal.MaxPrecision < precision)
|
||||
{
|
||||
throw SQL.InvalidTableDerivedPrecisionForTvp(column.ColumnName, precision);
|
||||
}
|
||||
else if (0 == precision)
|
||||
{
|
||||
precision = 1;
|
||||
}
|
||||
}
|
||||
else if (dbType == SqlDbType.DateTime2 || dbType == SqlDbType.DateTimeOffset || dbType == SqlDbType.Time)
|
||||
{
|
||||
// Time types care about scale, too. But have to infer maximums for these.
|
||||
precision = 0;
|
||||
scale = SmiMetaData.DefaultTime.Scale;
|
||||
}
|
||||
else if (dbType == SqlDbType.Decimal)
|
||||
{
|
||||
// Must scan all values in column to determine best-fit precision & scale
|
||||
Debug.Assert(null != parent);
|
||||
scale = 0;
|
||||
byte nonFractionalPrecision = 0; // finds largest non-Fractional portion of precision
|
||||
foreach (DataRow row in parent.Rows)
|
||||
{
|
||||
object obj = row[column];
|
||||
if (!(obj is DBNull))
|
||||
{
|
||||
SqlDecimal value = (SqlDecimal)(Decimal)obj;
|
||||
byte tempNonFractPrec = checked((byte)(value.Precision - value.Scale));
|
||||
if (tempNonFractPrec > nonFractionalPrecision)
|
||||
{
|
||||
nonFractionalPrecision = tempNonFractPrec;
|
||||
}
|
||||
|
||||
if (value.Scale > scale)
|
||||
{
|
||||
scale = value.Scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
precision = checked((byte)(nonFractionalPrecision + scale));
|
||||
|
||||
if (SqlDecimal.MaxPrecision < precision)
|
||||
{
|
||||
throw SQL.InvalidTableDerivedPrecisionForTvp(column.ColumnName, precision);
|
||||
}
|
||||
else if (0 == precision)
|
||||
{
|
||||
precision = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
precision = 0;
|
||||
scale = 0;
|
||||
}
|
||||
|
||||
// In Net Core, since DataColumn.Locale is not accessible because it is internal and in a separate assembly,
|
||||
// we try to get the Locale from the parent
|
||||
CultureInfo columnLocale = ((null != parent) ? parent.Locale : CultureInfo.CurrentCulture);
|
||||
|
||||
return new SmiExtendedMetaData(
|
||||
dbType,
|
||||
maxLength,
|
||||
precision,
|
||||
scale,
|
||||
columnLocale.LCID,
|
||||
SmiMetaData.DefaultNVarChar.CompareOptions,
|
||||
false, // no support for multi-valued columns in a TVP yet
|
||||
null, // no support for structured columns yet
|
||||
null, // no support for structured columns yet
|
||||
column.ColumnName,
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
}
|
||||
|
||||
internal static long AdjustMaxLength(SqlDbType dbType, long maxLength)
|
||||
{
|
||||
if (SmiMetaData.UnlimitedMaxLengthIndicator != maxLength)
|
||||
{
|
||||
if (maxLength < 0)
|
||||
{
|
||||
maxLength = InvalidMaxLength;
|
||||
}
|
||||
|
||||
switch (dbType)
|
||||
{
|
||||
case SqlDbType.Binary:
|
||||
if (maxLength > SmiMetaData.MaxBinaryLength)
|
||||
{
|
||||
maxLength = InvalidMaxLength;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.Char:
|
||||
if (maxLength > SmiMetaData.MaxANSICharacters)
|
||||
{
|
||||
maxLength = InvalidMaxLength;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.NChar:
|
||||
if (maxLength > SmiMetaData.MaxUnicodeCharacters)
|
||||
{
|
||||
maxLength = InvalidMaxLength;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.NVarChar:
|
||||
// Promote to MAX type if it won't fit in a normal type
|
||||
if (SmiMetaData.MaxUnicodeCharacters < maxLength)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.VarBinary:
|
||||
// Promote to MAX type if it won't fit in a normal type
|
||||
if (SmiMetaData.MaxBinaryLength < maxLength)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.VarChar:
|
||||
// Promote to MAX type if it won't fit in a normal type
|
||||
if (SmiMetaData.MaxANSICharacters < maxLength)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return maxLength;
|
||||
}
|
||||
|
||||
// Map SmiMetaData from a schema table.
|
||||
// DEVNOTE: Since we're using SchemaTable, we can assume that we aren't directly using a SqlDataReader
|
||||
// so we don't support the Sql-specific stuff, like collation.
|
||||
internal static SmiExtendedMetaData SmiMetaDataFromSchemaTableRow(DataRow schemaRow)
|
||||
{
|
||||
string colName = "";
|
||||
object temp = schemaRow[SchemaTableColumn.ColumnName];
|
||||
if (DBNull.Value != temp)
|
||||
{
|
||||
colName = (string)temp;
|
||||
}
|
||||
|
||||
// Determine correct SqlDbType.
|
||||
temp = schemaRow[SchemaTableColumn.DataType];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
throw SQL.NullSchemaTableDataTypeNotSupported(colName);
|
||||
}
|
||||
|
||||
Type colType = (Type)temp;
|
||||
SqlDbType colDbType = InferSqlDbTypeFromType_Katmai(colType);
|
||||
if (InvalidSqlDbType == colDbType)
|
||||
{
|
||||
// Unknown through standard mapping, use VarBinary for columns that are Object typed, otherwise we error out.
|
||||
// Unknown through standard mapping, use VarBinary for columns that are Object typed, otherwise error
|
||||
if (typeof(object) == colType)
|
||||
{
|
||||
colDbType = SqlDbType.VarBinary;
|
||||
@@ -532,54 +729,169 @@ namespace Microsoft.SqlServer.Server
|
||||
case SqlDbType.Variant:
|
||||
case SqlDbType.Xml:
|
||||
case SqlDbType.Date:
|
||||
// These types require no metadata modifiers
|
||||
// These types require no metadata modifies
|
||||
break;
|
||||
case SqlDbType.Binary:
|
||||
case SqlDbType.VarBinary:
|
||||
// source isn't specifying a size, so assume the Maximum
|
||||
if (SqlDbType.Binary == colDbType)
|
||||
// These types need a binary max length
|
||||
temp = schemaRow[SchemaTableColumn.ColumnSize];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxBinaryLength;
|
||||
// source isn't specifying a size, so assume the worst
|
||||
if (SqlDbType.Binary == colDbType)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxBinaryLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
// We (should) have a valid maxlength, so use it.
|
||||
maxLength = Convert.ToInt64(temp, null);
|
||||
|
||||
// Max length must be 0 to MaxBinaryLength or it can be UnlimitedMAX if type is varbinary.
|
||||
// If it's greater than MaxBinaryLength, just promote it to UnlimitedMAX, if possible.
|
||||
if (maxLength > SmiMetaData.MaxBinaryLength)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
|
||||
if ((maxLength < 0 &&
|
||||
(maxLength != SmiMetaData.UnlimitedMaxLengthIndicator ||
|
||||
SqlDbType.Binary == colDbType)))
|
||||
{
|
||||
throw SQL.InvalidColumnMaxLength(colName, maxLength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SqlDbType.Char:
|
||||
case SqlDbType.VarChar:
|
||||
// source isn't specifying a size, so assume the Maximum
|
||||
if (SqlDbType.Char == colDbType)
|
||||
// These types need an ANSI max length
|
||||
temp = schemaRow[SchemaTableColumn.ColumnSize];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxANSICharacters;
|
||||
// source isn't specifying a size, so assume the worst
|
||||
if (SqlDbType.Char == colDbType)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxANSICharacters;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
// We (should) have a valid maxlength, so use it.
|
||||
maxLength = Convert.ToInt64(temp, null);
|
||||
|
||||
// Max length must be 0 to MaxANSICharacters or it can be UnlimitedMAX if type is varbinary.
|
||||
// If it's greater than MaxANSICharacters, just promote it to UnlimitedMAX, if possible.
|
||||
if (maxLength > SmiMetaData.MaxANSICharacters)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
|
||||
if ((maxLength < 0 &&
|
||||
(maxLength != SmiMetaData.UnlimitedMaxLengthIndicator ||
|
||||
SqlDbType.Char == colDbType)))
|
||||
{
|
||||
throw SQL.InvalidColumnMaxLength(colName, maxLength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SqlDbType.NChar:
|
||||
case SqlDbType.NVarChar:
|
||||
// source isn't specifying a size, so assume the Maximum
|
||||
if (SqlDbType.NChar == colDbType)
|
||||
// These types need a unicode max length
|
||||
temp = schemaRow[SchemaTableColumn.ColumnSize];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxUnicodeCharacters;
|
||||
// source isn't specifying a size, so assume the worst
|
||||
if (SqlDbType.NChar == colDbType)
|
||||
{
|
||||
maxLength = SmiMetaData.MaxUnicodeCharacters;
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
// We (should) have a valid maxlength, so use it.
|
||||
maxLength = Convert.ToInt64(temp, null);
|
||||
|
||||
// Max length must be 0 to MaxUnicodeCharacters or it can be UnlimitedMAX if type is varbinary.
|
||||
// If it's greater than MaxUnicodeCharacters, just promote it to UnlimitedMAX, if possible.
|
||||
if (maxLength > SmiMetaData.MaxUnicodeCharacters)
|
||||
{
|
||||
maxLength = SmiMetaData.UnlimitedMaxLengthIndicator;
|
||||
}
|
||||
|
||||
if ((maxLength < 0 &&
|
||||
(maxLength != SmiMetaData.UnlimitedMaxLengthIndicator ||
|
||||
SqlDbType.NChar == colDbType)))
|
||||
{
|
||||
throw SQL.InvalidColumnMaxLength(colName, maxLength);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SqlDbType.Decimal:
|
||||
// Decimal requires precision and scale
|
||||
precision = SmiMetaData.DefaultDecimal.Precision;
|
||||
scale = SmiMetaData.DefaultDecimal.Scale;
|
||||
temp = schemaRow[SchemaTableColumn.NumericPrecision];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
precision = SmiMetaData.DefaultDecimal.Precision;
|
||||
}
|
||||
else
|
||||
{
|
||||
precision = Convert.ToByte(temp, null);
|
||||
}
|
||||
|
||||
temp = schemaRow[SchemaTableColumn.NumericScale];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
scale = SmiMetaData.DefaultDecimal.Scale;
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = Convert.ToByte(temp, null);
|
||||
}
|
||||
|
||||
if (precision < SmiMetaData.MinPrecision ||
|
||||
precision > SqlDecimal.MaxPrecision ||
|
||||
scale < SmiMetaData.MinScale ||
|
||||
scale > SqlDecimal.MaxScale ||
|
||||
scale > precision)
|
||||
{
|
||||
throw SQL.InvalidColumnPrecScale();
|
||||
}
|
||||
break;
|
||||
case SqlDbType.Time:
|
||||
case SqlDbType.DateTime2:
|
||||
case SqlDbType.DateTimeOffset:
|
||||
// requires scale
|
||||
scale = SmiMetaData.DefaultTime.Scale;
|
||||
temp = schemaRow[SchemaTableColumn.NumericScale];
|
||||
if (DBNull.Value == temp)
|
||||
{
|
||||
scale = SmiMetaData.DefaultTime.Scale;
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = Convert.ToByte(temp, null);
|
||||
}
|
||||
|
||||
if (scale > SmiMetaData.MaxTimeScale)
|
||||
{
|
||||
throw SQL.InvalidColumnPrecScale();
|
||||
}
|
||||
else if (scale < 0)
|
||||
{
|
||||
scale = SmiMetaData.DefaultTime.Scale;
|
||||
}
|
||||
break;
|
||||
case SqlDbType.Udt:
|
||||
case SqlDbType.Structured:
|
||||
@@ -593,11 +905,12 @@ namespace Microsoft.SqlServer.Server
|
||||
maxLength,
|
||||
precision,
|
||||
scale,
|
||||
CultureInfo.CurrentCulture.LCID,
|
||||
System.Globalization.CultureInfo.CurrentCulture.LCID,
|
||||
SmiMetaData.GetDefaultForType(colDbType).CompareOptions,
|
||||
null, // no support for UDTs from SchemaTable
|
||||
false, // no support for multi-valued columns in a TVP yet
|
||||
null, // no support for structured columns yet
|
||||
null,
|
||||
null, // no support for structured columns yet
|
||||
colName,
|
||||
null,
|
||||
null,
|
||||
|
||||
@@ -18,7 +18,7 @@ using System.Diagnostics;
|
||||
|
||||
namespace Microsoft.SqlServer.Server
|
||||
{
|
||||
public class SqlDataRecord
|
||||
public class SqlDataRecord : IDataRecord
|
||||
{
|
||||
private SmiRecordBuffer _recordBuffer;
|
||||
private SmiExtendedMetaData[] _columnSmiMetaData;
|
||||
@@ -731,6 +731,11 @@ namespace Microsoft.SqlServer.Server
|
||||
throw SQL.SubclassMustOverride();
|
||||
}
|
||||
}
|
||||
|
||||
public IDataReader GetData(int i)
|
||||
{
|
||||
throw ADP.NotSupported();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
6a9d5ba4e3cf4cdd50d3b760615576a082f26d78
|
||||
02610b6a63ac39998eb7438555538320b2eb7cff
|
||||
@@ -109,6 +109,9 @@
|
||||
<data name="ADP_InvalidEnumerationValue" xml:space="preserve">
|
||||
<value>The {0} enumeration value, {1}, is invalid.</value>
|
||||
</data>
|
||||
<data name="ADP_NotSupportedEnumerationValue" xml:space="preserve">
|
||||
<value>The {0} enumeration value, {1}, is not supported by the {2} method.</value>
|
||||
</data>
|
||||
<data name="ADP_InvalidOffsetValue" xml:space="preserve">
|
||||
<value>Invalid parameter Offset value '{0}'. The value must be greater than or equal to 0.</value>
|
||||
</data>
|
||||
@@ -265,6 +268,9 @@
|
||||
<data name="ADP_ParameterValueOutOfRange" xml:space="preserve">
|
||||
<value>Parameter value '{0}' is out of range.</value>
|
||||
</data>
|
||||
<data name="ADP_BadParameterName" xml:space="preserve">
|
||||
<value>Specified parameter name '{0}' is not valid.</value>
|
||||
</data>
|
||||
<data name="ADP_InvalidSizeValue" xml:space="preserve">
|
||||
<value>Invalid parameter Size value '{0}'. The value must be greater than or equal to 0.</value>
|
||||
</data>
|
||||
@@ -649,12 +655,45 @@
|
||||
<data name="SqlParameter_UnexpectedTypeNameForNonStruct" xml:space="preserve">
|
||||
<value>TypeName specified for parameter '{0}'. TypeName must only be set for Structured parameters.</value>
|
||||
</data>
|
||||
<data name="NullSchemaTableDataTypeNotSupported" xml:space="preserve">
|
||||
<value>DateType column for field '{0}' in schema table is null. DataType must be non-null.</value>
|
||||
</data>
|
||||
<data name="InvalidSchemaTableOrdinals" xml:space="preserve">
|
||||
<value>Invalid column ordinals in schema table. ColumnOrdinals, if present, must not have duplicates or gaps.</value>
|
||||
</data>
|
||||
<data name="SQL_EnumeratedRecordMetaDataChanged" xml:space="preserve">
|
||||
<value>Metadata for field '{0}' of record '{1}' did not match the original record's metadata.</value>
|
||||
</data>
|
||||
<data name="SQL_EnumeratedRecordFieldCountChanged" xml:space="preserve">
|
||||
<value>Number of fields in record '{0}' does not match the number in the original record.</value>
|
||||
</data>
|
||||
<data name="SQLNotify_AlreadyHasCommand" xml:space="preserve">
|
||||
<value>This SqlCommand object is already associated with another SqlDependency object.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_DatabaseBrokerDisabled" xml:space="preserve">
|
||||
<value>The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_DefaultOptionsButNoStart" xml:space="preserve">
|
||||
<value>When using SqlDependency without providing an options value, SqlDependency.Start() must be called prior to execution of a command added to the SqlDependency instance.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_NoMatchingServerStart" xml:space="preserve">
|
||||
<value>When using SqlDependency without providing an options value, SqlDependency.Start() must be called for each server that is being executed against.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_NoMatchingServerDatabaseStart" xml:space="preserve">
|
||||
<value>SqlDependency.Start has been called for the server the command is executing against more than once, but there is no matching server/user/database Start() call for current command.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_EventNoDuplicate" xml:space="preserve">
|
||||
<value>SqlDependency.OnChange does not support multiple event registrations for the same delegate.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_IdMismatch" xml:space="preserve">
|
||||
<value>No SqlDependency exists for the key.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_InvalidTimeout" xml:space="preserve">
|
||||
<value>Timeout specified is invalid. Timeout cannot be < 0.</value>
|
||||
</data>
|
||||
<data name="SqlDependency_DuplicateStart" xml:space="preserve">
|
||||
<value>SqlDependency does not support calling Start() with different connection strings having the same server, user, and database in the same app domain.</value>
|
||||
</data>
|
||||
<data name="SqlMetaData_InvalidSqlDbTypeForConstructorFormat" xml:space="preserve">
|
||||
<value>The dbType {0} is invalid for this constructor.</value>
|
||||
</data>
|
||||
@@ -1033,4 +1072,67 @@
|
||||
<data name="SSPIInvalidHandleType" xml:space="preserve">
|
||||
<value>'{0}' is not a supported handle type.</value>
|
||||
</data>
|
||||
<data name="LocalDBNotSupported" xml:space="preserve">
|
||||
<value>LocalDB is not supported on this Platform.</value>
|
||||
</data>
|
||||
<data name="PlatformNotSupported_DataSqlClient" xml:space="preserve">
|
||||
<value>System.Data.SqlClient is not supported on this platform.</value>
|
||||
</data>
|
||||
<data name="SqlParameter_InvalidTableDerivedPrecisionForTvp" xml:space="preserve">
|
||||
<value>Precision '{0}' required to send all values in column '{1}' exceeds the maximum supported precision '{2}'. The values must all fit in a single precision.</value>
|
||||
</data>
|
||||
<data name="SqlProvider_InvalidDataColumnMaxLength" xml:space="preserve">
|
||||
<value>The size of column '{0}' is not supported. The size is {1}.</value>
|
||||
</data>
|
||||
<data name="MDF_InvalidXmlInvalidValue" xml:space="preserve">
|
||||
<value>The metadata XML is invalid. The {1} column of the {0} collection must contain a non-empty string.</value>
|
||||
</data>
|
||||
<data name="MDF_CollectionNameISNotUnique" xml:space="preserve">
|
||||
<value>There are multiple collections named '{0}'.</value>
|
||||
</data>
|
||||
<data name="MDF_InvalidXmlMissingColumn" xml:space="preserve">
|
||||
<value>The metadata XML is invalid. The {0} collection must contain a {1} column and it must be a string column.</value>
|
||||
</data>
|
||||
<data name="MDF_InvalidXml" xml:space="preserve">
|
||||
<value>The metadata XML is invalid.</value>
|
||||
</data>
|
||||
<data name="MDF_NoColumns" xml:space="preserve">
|
||||
<value>The schema table contains no columns.</value>
|
||||
</data>
|
||||
<data name="MDF_QueryFailed" xml:space="preserve">
|
||||
<value>Unable to build the '{0}' collection because execution of the SQL query failed. See the inner exception for details.</value>
|
||||
</data>
|
||||
<data name="MDF_TooManyRestrictions" xml:space="preserve">
|
||||
<value>More restrictions were provided than the requested schema ('{0}') supports.</value>
|
||||
</data>
|
||||
<data name="MDF_DataTableDoesNotExist" xml:space="preserve">
|
||||
<value>The collection '{0}' is missing from the metadata XML.</value>
|
||||
</data>
|
||||
<data name="MDF_UndefinedCollection" xml:space="preserve">
|
||||
<value>The requested collection ({0}) is not defined.</value>
|
||||
</data>
|
||||
<data name="MDF_UnsupportedVersion" xml:space="preserve">
|
||||
<value> requested collection ({0}) is not supported by this version of the provider.</value>
|
||||
</data>
|
||||
<data name="MDF_MissingRestrictionColumn" xml:space="preserve">
|
||||
<value>One or more of the required columns of the restrictions collection is missing.</value>
|
||||
</data>
|
||||
<data name="MDF_MissingRestrictionRow" xml:space="preserve">
|
||||
<value>A restriction exists for which there is no matching row in the restrictions collection.</value>
|
||||
</data>
|
||||
<data name="MDF_IncorrectNumberOfDataSourceInformationRows" xml:space="preserve">
|
||||
<value>The DataSourceInformation table must contain exactly one row.</value>
|
||||
</data>
|
||||
<data name="MDF_MissingDataSourceInformationColumn" xml:space="preserve">
|
||||
<value>One of the required DataSourceInformation tables columns is missing.</value>
|
||||
</data>
|
||||
<data name="MDF_AmbigousCollectionName" xml:space="preserve">
|
||||
<value>The collection name '{0}' matches at least two collections with the same name but with different case, but does not match any of them exactly.</value>
|
||||
</data>
|
||||
<data name="MDF_UnableToBuildCollection" xml:space="preserve">
|
||||
<value>Unable to build schema collection '{0}';</value>
|
||||
</data>
|
||||
<data name="AmbientTransactionsNotSupported" xml:space="preserve">
|
||||
<value>Enlisting in Ambient transactions is not supported.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
2539
external/corefx/src/System.Data.SqlClient/src/Resources/System.Data.SqlClient.SqlMetaData.xml
vendored
Normal file
2539
external/corefx/src/System.Data.SqlClient/src/Resources/System.Data.SqlClient.SqlMetaData.xml
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -5,16 +5,29 @@
|
||||
<ProjectGuid>{D4550556-4745-457F-BA8F-3EBF3836D6B4}</ProjectGuid>
|
||||
<AssemblyName>System.Data.SqlClient</AssemblyName>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'net463'">true</IsPartialFacadeAssembly>
|
||||
<!-- Although we have a NS configuration, we know we use API that's not currently whitelisted: just validate against OneCore -->
|
||||
<UWPCompatible>false</UWPCompatible>
|
||||
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'netfx'">true</IsPartialFacadeAssembly>
|
||||
<GeneratePlatformNotSupportedAssemblyMessage Condition="'$(OSGroup)' == 'AnyOS'">SR.PlatformNotSupported_DataSqlClient</GeneratePlatformNotSupportedAssemblyMessage>
|
||||
<AssemblyVersion Condition="'$(TargetGroup)' == 'netstandard1.2'">4.0.0.0</AssemblyVersion>
|
||||
<AssemblyVersion Condition="'$(TargetGroup)' == 'netstandard1.3'">4.1.0.0</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netfx-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netfx-Windows_NT-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Unix-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Unix-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Windows_NT-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Windows_NT-Release|AnyCPU'" />
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true'">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.2-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.2-Release|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Debug|AnyCPU'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard1.3-Release|AnyCPU'" />
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'netstandard'">
|
||||
<Compile Include="System.Data.SqlClient.TypeForwards.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true' AND '$(OSGroup)' != 'AnyOS'">
|
||||
<Compile Include="Microsoft\SqlServer\Server\ITypedGetters.cs" />
|
||||
<Compile Include="Microsoft\SqlServer\Server\ITypedGettersV3.cs" />
|
||||
<Compile Include="Microsoft\SqlServer\Server\ITypedSetters.cs" />
|
||||
@@ -39,9 +52,14 @@
|
||||
<Compile Include="System\Data\OperationAbortedException.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDbColumn.cs" />
|
||||
<Compile Include="System\Data\Common\ActivityCorrelator.cs" />
|
||||
<Compile Include="System\Data\Common\AdapterUtil.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\AdapterUtil.cs">
|
||||
<Link>System\Data\Common\AdapterUtil.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="System\Data\Common\AdapterUtil.SqlClient.cs" />
|
||||
<Compile Include="System\Data\Common\DbConnectionOptions.cs" />
|
||||
<Compile Include="System\Data\Common\DbConnectionPoolKey.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\DbConnectionPoolKey.cs">
|
||||
<Link>System\Data\Common\DbConnectionPoolKey.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="System\Data\Common\DbConnectionStringCommon.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\FieldNameLookup.cs">
|
||||
<Link>System\Data\Common\FieldNameLookup.cs</Link>
|
||||
@@ -49,8 +67,12 @@
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\BasicFieldNameLookup.cs">
|
||||
<Link>System\Data\Common\BasicFieldNameLookup.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="System\Data\Common\MultipartIdentifier.cs" />
|
||||
<Compile Include="System\Data\Common\NameValuePair.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\MultipartIdentifier.cs">
|
||||
<Link>System\Data\Common\MultipartIdentifier.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\NameValuePair.cs">
|
||||
<Link>System\Data\Common\NameValuePair.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionClosed.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionFactory.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionInternal.cs" />
|
||||
@@ -60,9 +82,11 @@
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionPoolIdentity.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionPoolOptions.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionPoolProviderInfo.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbMetaDataFactory.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\DbReferenceCollection.cs" />
|
||||
<Compile Include="System\Data\ProviderBase\TimeoutTimer.cs" />
|
||||
<Compile Include="System\Data\Sql\SqlMetaData.cs" />
|
||||
<Compile Include="System\Data\Sql\SqlNotificationRequest.cs" />
|
||||
<Compile Include="System\Data\SqlClient\ApplicationIntent.cs" />
|
||||
<Compile Include="System\Data\SqlClient\LocalDBAPI.cs" />
|
||||
<Compile Include="System\Data\SqlClient\ParameterPeekAheadValue.cs" />
|
||||
@@ -77,6 +101,7 @@
|
||||
<Compile Include="System\Data\SqlClient\SqlCachedBuffer.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlClientDiagnosticListenerExtensions.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlClientFactory.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlClientMetaDataCollectionNames.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlCommand.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlConnection.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlConnectionFactory.cs" />
|
||||
@@ -87,7 +112,11 @@
|
||||
<Compile Include="System\Data\SqlClient\SqlConnectionString.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlConnectionStringBuilder.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlConnectionTimeoutErrorInternal.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDataAdapter.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDataReader.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDependency.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDependencyListener.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlDependencyUtils.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlEnums.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlError.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlErrorCollection.cs" />
|
||||
@@ -97,11 +126,21 @@
|
||||
<Compile Include="System\Data\SqlClient\SqlInternalConnection.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlInternalConnectionTds.cs" />
|
||||
<Compile Include="System\Data\SqlClient\sqlinternaltransaction.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlMetadataFactory.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlNotificationEventArgs.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlNotificationInfo.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlNotificationSource.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlNotificationType.cs" />
|
||||
<Compile Include="System\Data\SqlClient\OnChangedEventHandler.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlParameter.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlParameterCollection.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlParameterCollectionHelper.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlParameterHelper.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlReferenceCollection.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlRowUpdatedEvent.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlRowUpdatedEventHandler.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlRowUpdatingEvent.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlRowUpdatingEventHandler.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlSequentialStream.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlSequentialTextReader.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SqlStatistics.cs" />
|
||||
@@ -111,6 +150,7 @@
|
||||
<Compile Include="System\Data\SqlClient\TdsEnums.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParameterSetter.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParser.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParser.RegisterEncoding.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParserHelperClasses.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParserSessionPool.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParserStateObject.cs" />
|
||||
@@ -118,7 +158,9 @@
|
||||
<Compile Include="System\Data\SqlClient\TdsRecordBufferSetter.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsValueSetter.cs" />
|
||||
<Compile Include="System\Data\SqlTypes\SqlTypeWorkarounds.cs" />
|
||||
<Compile Include="System\Data\SqlTypes\SQLResource.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Data\Common\SQLResource.cs">
|
||||
<Link>System\Data\SQLTypes\SQLResource.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\System\NotImplemented.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Threading\Tasks\TaskToApm.cs">
|
||||
<Link>Common\System\Threading\Tasks\TaskToApm.cs</Link>
|
||||
@@ -137,9 +179,9 @@
|
||||
<Compile Include="System\Data\SqlClient\SNI\SslOverTdsStream.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SNI\SNICommon.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SNI\SspiClientContextStatus.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SNI\SSRP.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParserStateObjectManaged.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true' And '$(IsPartialFacadeAssembly)' != 'true' ">
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionPoolIdentity.Windows.cs" />
|
||||
<Compile Include="Interop\SNINativeMethodWrapper.Windows.cs" />
|
||||
@@ -148,8 +190,20 @@
|
||||
<Compile Include="System\Data\SqlClient\TdsParserStateObjectFactory.Windows.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParser.Windows.cs" />
|
||||
<Compile Include="System\Data\SqlClient\LocalDBAPI.Windows.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SNI\LocalDB.Windows.cs" />
|
||||
<Compile Include="$(CommonPath)\Interop\Windows\kernel32\Interop.LoadLibraryEx.cs">
|
||||
<Link>Common\Interop\Windows\kernel32\Interop.LoadLibraryEx.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\Interop\Windows\kernel32\Interop.FreeLibrary.cs">
|
||||
<Link>Common\Interop\Windows\kernel32\Interop.FreeLibrary.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\Interop\Windows\kernel32\Interop.GetProcAddress.cs">
|
||||
<Link>Common\Interop\Windows\kernel32\Interop.GetProcAddress.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="$(CommonPath)\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs">
|
||||
<Link>Common\Microsoft\Win32\SafeHandles\SafeLibraryHandle.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Windows dependencies for Integrated Authentication for MANAGED_SNI build -->
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' == 'true' And '$(IsPartialFacadeAssembly)' != 'true' ">
|
||||
<Compile Include="$(CommonPath)\System\Net\Security\NegotiateStreamPal.Windows.cs">
|
||||
@@ -244,7 +298,7 @@
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<!-- Common (Windows and Unix) dependencies for MANAGED_SNI build -->
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true'">
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true' AND '$(OSGroup)' != 'AnyOS'">
|
||||
<Compile Include="$(CommonPath)\System\Net\ContextFlagsPal.cs">
|
||||
<Link>Common\System\Net\ContextFlagsPal.cs</Link>
|
||||
</Compile>
|
||||
@@ -276,8 +330,7 @@
|
||||
<Link>Common\System\Net\NegotiationInfoClass.cs</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' != 'true' And '$(IsPartialFacadeAssembly)' != 'true' ">
|
||||
<ItemGroup Condition=" '$(TargetsWindows)' != 'true' And '$(IsPartialFacadeAssembly)' != 'true' AND '$(OSGroup)' != 'AnyOS'">
|
||||
<Compile Include="System\Data\ProviderBase\DbConnectionPoolIdentity.Unix.cs" />
|
||||
<Compile Include="Interop\SNINativeMethodWrapper.Unix.cs" />
|
||||
<Compile Include="$(CommonPath)\System\Net\Security\NegotiateStreamPal.Unix.cs">
|
||||
@@ -316,23 +369,30 @@
|
||||
<Compile Include="System\Data\SqlClient\TdsParserStateObjectFactory.Unix.cs" />
|
||||
<Compile Include="System\Data\SqlClient\TdsParser.Unix.cs" />
|
||||
<Compile Include="System\Data\SqlClient\LocalDBAPI.Unix.cs" />
|
||||
<Compile Include="System\Data\SqlClient\SNI\LocalDB.Unix.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' == 'true'">
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System.Data" />
|
||||
<ItemGroup Condition="'$(TargetsWindows)' == 'true' And '$(IsPartialFacadeAssembly)' != 'true' ">
|
||||
<Reference Include="Microsoft.Win32.Registry" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true'">
|
||||
<Reference Condition="'$(TargetGroup)' != 'netstandard'" Include="System.Data.Common" />
|
||||
<Reference Include="System.Globalization" />
|
||||
<Reference Include="System.IO" />
|
||||
<Reference Include="System.Resources.ResourceManager" />
|
||||
<Reference Include="System.Runtime" />
|
||||
<Reference Include="System.Threading.Tasks" />
|
||||
<Reference Include="System.Xml.ReaderWriter" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(IsPartialFacadeAssembly)' != 'true' AND '$(OSGroup)' != 'AnyOS'">
|
||||
<Reference Include="Microsoft.Win32.Primitives" />
|
||||
<Reference Include="System.Collections" />
|
||||
<Reference Include="System.Collections.Concurrent" />
|
||||
<Reference Include="System.ComponentModel.Primitives" />
|
||||
<Reference Include="System.Data.Common" />
|
||||
<Reference Include="System.ComponentModel.TypeConverter" />
|
||||
<Reference Include="System.Diagnostics.Debug" />
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource" />
|
||||
<Reference Include="System.Diagnostics.Tools" />
|
||||
<Reference Include="System.Linq" />
|
||||
<Reference Include="System.Resources.ResourceManager" />
|
||||
<Reference Include="System.Runtime" />
|
||||
<Reference Include="System.Runtime.Extensions" />
|
||||
<Reference Include="System.Runtime.InteropServices" />
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation" />
|
||||
@@ -343,11 +403,9 @@
|
||||
<Reference Include="System.Text.Encoding.Extensions" />
|
||||
<Reference Include="System.Text.RegularExpressions" />
|
||||
<Reference Include="System.Threading" />
|
||||
<Reference Include="System.Threading.Tasks" />
|
||||
<Reference Include="System.Threading.Thread" />
|
||||
<Reference Include="System.Threading.ThreadPool" />
|
||||
<Reference Include="System.Threading.Timer" />
|
||||
<Reference Include="System.Xml.ReaderWriter" />
|
||||
<Reference Include="System.IO.Pipes" />
|
||||
<Reference Include="System.Security.Cryptography.X509Certificates" />
|
||||
<Reference Include="System.Net.Sockets" />
|
||||
@@ -356,6 +414,15 @@
|
||||
<Reference Include="System.Net.NameResolution" />
|
||||
<Reference Include="System.Diagnostics.Tracing" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetGroup)' == 'netfx'">
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System.Data" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\System.Data.SqlClient.SqlMetaData.xml">
|
||||
<LogicalName>System.Data.SqlClient.SqlMetaData.xml</LogicalName>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
|
||||
<Import Project=".\GenerateThisAssemblyCs.targets" Condition="'$(IsPartialFacadeAssembly)' != 'true'" />
|
||||
</Project>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,60 +0,0 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace System.Data.Common
|
||||
{
|
||||
// DbConnectionPoolKey: Base class implementation of a key to connection pool groups
|
||||
// Only connection string is used as a key
|
||||
internal class DbConnectionPoolKey
|
||||
{
|
||||
private string _connectionString;
|
||||
|
||||
internal DbConnectionPoolKey(string connectionString)
|
||||
{
|
||||
_connectionString = connectionString;
|
||||
}
|
||||
|
||||
protected DbConnectionPoolKey(DbConnectionPoolKey key)
|
||||
{
|
||||
_connectionString = key.ConnectionString;
|
||||
}
|
||||
|
||||
internal virtual DbConnectionPoolKey Clone()
|
||||
{
|
||||
return new DbConnectionPoolKey(this);
|
||||
}
|
||||
|
||||
internal virtual string ConnectionString
|
||||
{
|
||||
get
|
||||
{
|
||||
return _connectionString;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_connectionString = value;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
DbConnectionPoolKey key = obj as DbConnectionPoolKey;
|
||||
Debug.Assert(obj.GetType() == typeof(DbConnectionPoolKey), "Derived classes should not be using DbConnectionPoolKey.Equals");
|
||||
|
||||
return (key != null && _connectionString == key._connectionString);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return _connectionString == null ? 0 : _connectionString.GetHashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -238,6 +238,7 @@ namespace System.Data.Common
|
||||
internal const string CurrentLanguage = "";
|
||||
internal const string DataSource = "";
|
||||
internal const bool Encrypt = false;
|
||||
internal const bool Enlist = true;
|
||||
internal const string FailoverPartner = "";
|
||||
internal const string InitialCatalog = "";
|
||||
internal const bool IntegratedSecurity = false;
|
||||
@@ -297,6 +298,7 @@ namespace System.Data.Common
|
||||
internal const string DataSource = "Data Source";
|
||||
internal const string IntegratedSecurity = "Integrated Security";
|
||||
internal const string Password = "Password";
|
||||
internal const string Driver = "Driver";
|
||||
internal const string PersistSecurityInfo = "Persist Security Info";
|
||||
internal const string UserID = "User ID";
|
||||
|
||||
|
||||
@@ -1,295 +0,0 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Text;
|
||||
|
||||
namespace System.Data.Common
|
||||
{
|
||||
internal class MultipartIdentifier
|
||||
{
|
||||
private const int MaxParts = 4;
|
||||
internal const int ServerIndex = 0;
|
||||
internal const int CatalogIndex = 1;
|
||||
internal const int SchemaIndex = 2;
|
||||
internal const int TableIndex = 3;
|
||||
|
||||
/*
|
||||
Left quote strings need to correspond 1 to 1 with the right quote strings
|
||||
example: "ab" "cd", passed in for the left and the right quote
|
||||
would set a or b as a starting quote character.
|
||||
If a is the starting quote char then c would be the ending quote char
|
||||
otherwise if b is the starting quote char then d would be the ending quote character.
|
||||
*/
|
||||
internal static string[] ParseMultipartIdentifier(string name, string leftQuote, string rightQuote, string property, bool ThrowOnEmptyMultipartName)
|
||||
{
|
||||
return ParseMultipartIdentifier(name, leftQuote, rightQuote, '.', MaxParts, true, property, ThrowOnEmptyMultipartName);
|
||||
}
|
||||
|
||||
private enum MPIState
|
||||
{
|
||||
MPI_Value,
|
||||
MPI_ParseNonQuote,
|
||||
MPI_LookForSeparator,
|
||||
MPI_LookForNextCharOrSeparator,
|
||||
MPI_ParseQuote,
|
||||
MPI_RightQuote,
|
||||
}
|
||||
|
||||
/* Core function for parsing the multipart identifier string.
|
||||
* parameters: name - string to parse
|
||||
* leftquote: set of characters which are valid quoting characters to initiate a quote
|
||||
* rightquote: set of characters which are valid to stop a quote, array index's correspond to the leftquote array.
|
||||
* separator: separator to use
|
||||
* limit: number of names to parse out
|
||||
* removequote:to remove the quotes on the returned string
|
||||
*/
|
||||
private static void IncrementStringCount(string name, string[] ary, ref int position, string property)
|
||||
{
|
||||
++position;
|
||||
int limit = ary.Length;
|
||||
if (position >= limit)
|
||||
{
|
||||
throw ADP.InvalidMultipartNameToManyParts(property, name, limit);
|
||||
}
|
||||
ary[position] = string.Empty;
|
||||
}
|
||||
|
||||
private static bool IsWhitespace(char ch)
|
||||
{
|
||||
return Char.IsWhiteSpace(ch);
|
||||
}
|
||||
|
||||
internal static string[] ParseMultipartIdentifier(string name, string leftQuote, string rightQuote, char separator, int limit, bool removequotes, string property, bool ThrowOnEmptyMultipartName)
|
||||
{
|
||||
if (limit <= 0)
|
||||
{
|
||||
throw ADP.InvalidMultipartNameToManyParts(property, name, limit);
|
||||
}
|
||||
|
||||
if (-1 != leftQuote.IndexOf(separator) || -1 != rightQuote.IndexOf(separator) || leftQuote.Length != rightQuote.Length)
|
||||
{
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
|
||||
string[] parsedNames = new string[limit]; // return string array
|
||||
int stringCount = 0; // index of current string in the buffer
|
||||
MPIState state = MPIState.MPI_Value; // Initialize the starting state
|
||||
|
||||
StringBuilder sb = new StringBuilder(name.Length); // String buffer to hold the string being currently built, init the string builder so it will never be resized
|
||||
StringBuilder whitespaceSB = null; // String buffer to hold whitespace used when parsing nonquoted strings 'a b . c d' = 'a b' and 'c d'
|
||||
char rightQuoteChar = ' '; // Right quote character to use given the left quote character found.
|
||||
for (int index = 0; index < name.Length; ++index)
|
||||
{
|
||||
char testchar = name[index];
|
||||
switch (state)
|
||||
{
|
||||
case MPIState.MPI_Value:
|
||||
{
|
||||
int quoteIndex;
|
||||
if (IsWhitespace(testchar))
|
||||
{ // Is White Space then skip the whitespace
|
||||
continue;
|
||||
}
|
||||
else
|
||||
if (testchar == separator)
|
||||
{ // If we found a separator, no string was found, initialize the string we are parsing to Empty and the next one to Empty.
|
||||
// This is NOT a redundant setting of string.Empty it solves the case where we are parsing ".foo" and we should be returning null, null, empty, foo
|
||||
parsedNames[stringCount] = string.Empty;
|
||||
IncrementStringCount(name, parsedNames, ref stringCount, property);
|
||||
}
|
||||
else
|
||||
if (-1 != (quoteIndex = leftQuote.IndexOf(testchar)))
|
||||
{ // If we are a left quote
|
||||
rightQuoteChar = rightQuote[quoteIndex]; // record the corresponding right quote for the left quote
|
||||
sb.Length = 0;
|
||||
if (!removequotes)
|
||||
{
|
||||
sb.Append(testchar);
|
||||
}
|
||||
state = MPIState.MPI_ParseQuote;
|
||||
}
|
||||
else
|
||||
if (-1 != rightQuote.IndexOf(testchar))
|
||||
{ // If we shouldn't see a right quote
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Length = 0;
|
||||
sb.Append(testchar);
|
||||
state = MPIState.MPI_ParseNonQuote;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MPIState.MPI_ParseNonQuote:
|
||||
{
|
||||
if (testchar == separator)
|
||||
{
|
||||
parsedNames[stringCount] = sb.ToString(); // set the currently parsed string
|
||||
IncrementStringCount(name, parsedNames, ref stringCount, property);
|
||||
state = MPIState.MPI_Value;
|
||||
}
|
||||
else // Quotes are not valid inside a non-quoted name
|
||||
if (-1 != rightQuote.IndexOf(testchar))
|
||||
{
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
else
|
||||
if (-1 != leftQuote.IndexOf(testchar))
|
||||
{
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
else
|
||||
if (IsWhitespace(testchar))
|
||||
{ // If it is Whitespace
|
||||
parsedNames[stringCount] = sb.ToString(); // Set the currently parsed string
|
||||
if (null == whitespaceSB)
|
||||
{
|
||||
whitespaceSB = new StringBuilder();
|
||||
}
|
||||
whitespaceSB.Length = 0;
|
||||
whitespaceSB.Append(testchar); // start to record the whitespace, if we are parsing a name like "foo bar" we should return "foo bar"
|
||||
state = MPIState.MPI_LookForNextCharOrSeparator;
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(testchar);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MPIState.MPI_LookForNextCharOrSeparator:
|
||||
{
|
||||
if (!IsWhitespace(testchar))
|
||||
{ // If it is not whitespace
|
||||
if (testchar == separator)
|
||||
{
|
||||
IncrementStringCount(name, parsedNames, ref stringCount, property);
|
||||
state = MPIState.MPI_Value;
|
||||
}
|
||||
else
|
||||
{ // If its not a separator and not whitespace
|
||||
sb.Append(whitespaceSB);
|
||||
sb.Append(testchar);
|
||||
parsedNames[stringCount] = sb.ToString(); // Need to set the name here in case the string ends here.
|
||||
state = MPIState.MPI_ParseNonQuote;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
whitespaceSB.Append(testchar);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MPIState.MPI_ParseQuote:
|
||||
{
|
||||
if (testchar == rightQuoteChar)
|
||||
{ // if se are on a right quote see if we are escaping the right quote or ending the quoted string
|
||||
if (!removequotes)
|
||||
{
|
||||
sb.Append(testchar);
|
||||
}
|
||||
state = MPIState.MPI_RightQuote;
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(testchar); // Append what we are currently parsing
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MPIState.MPI_RightQuote:
|
||||
{
|
||||
if (testchar == rightQuoteChar)
|
||||
{ // If the next char is a another right quote then we were escaping the right quote
|
||||
sb.Append(testchar);
|
||||
state = MPIState.MPI_ParseQuote;
|
||||
}
|
||||
else
|
||||
if (testchar == separator)
|
||||
{ // If its a separator then record what we've parsed
|
||||
parsedNames[stringCount] = sb.ToString();
|
||||
IncrementStringCount(name, parsedNames, ref stringCount, property);
|
||||
state = MPIState.MPI_Value;
|
||||
}
|
||||
else
|
||||
if (!IsWhitespace(testchar))
|
||||
{ // If it is not whitespace we got problems
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
else
|
||||
{ // It is a whitespace character so the following char should be whitespace, separator, or end of string anything else is bad
|
||||
parsedNames[stringCount] = sb.ToString();
|
||||
state = MPIState.MPI_LookForSeparator;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MPIState.MPI_LookForSeparator:
|
||||
{
|
||||
if (!IsWhitespace(testchar))
|
||||
{ // If it is not whitespace
|
||||
if (testchar == separator)
|
||||
{ // If it is a separator
|
||||
IncrementStringCount(name, parsedNames, ref stringCount, property);
|
||||
state = MPIState.MPI_Value;
|
||||
}
|
||||
else
|
||||
{ // Otherwise not a separator
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Resolve final states after parsing the string
|
||||
switch (state)
|
||||
{
|
||||
case MPIState.MPI_Value: // These states require no extra action
|
||||
case MPIState.MPI_LookForSeparator:
|
||||
case MPIState.MPI_LookForNextCharOrSeparator:
|
||||
break;
|
||||
|
||||
case MPIState.MPI_ParseNonQuote: // Dump what ever was parsed
|
||||
case MPIState.MPI_RightQuote:
|
||||
parsedNames[stringCount] = sb.ToString();
|
||||
break;
|
||||
|
||||
case MPIState.MPI_ParseQuote: // Invalid Ending States
|
||||
default:
|
||||
throw ADP.InvalidMultipartNameIncorrectUsageOfQuotes(property, name);
|
||||
}
|
||||
|
||||
if (parsedNames[0] == null)
|
||||
{
|
||||
if (ThrowOnEmptyMultipartName)
|
||||
{
|
||||
throw ADP.InvalidMultipartName(property, name); // Name is entirely made up of whitespace
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Shuffle the parsed name, from left justification to right justification, i.e. [a][b][null][null] goes to [null][null][a][b]
|
||||
int offset = limit - stringCount - 1;
|
||||
if (offset > 0)
|
||||
{
|
||||
for (int x = limit - 1; x >= offset; --x)
|
||||
{
|
||||
parsedNames[x] = parsedNames[x - offset];
|
||||
parsedNames[x - offset] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return parsedNames;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Diagnostics;
|
||||
|
||||
|
||||
namespace System.Data.Common
|
||||
{
|
||||
sealed internal class NameValuePair
|
||||
{
|
||||
readonly private string _name;
|
||||
readonly private string _value;
|
||||
readonly private int _length;
|
||||
private NameValuePair _next;
|
||||
|
||||
internal NameValuePair(string name, string value, int length)
|
||||
{
|
||||
System.Diagnostics.Debug.Assert(!string.IsNullOrEmpty(name), "empty keyname");
|
||||
_name = name;
|
||||
_value = value;
|
||||
_length = length;
|
||||
}
|
||||
|
||||
internal int Length
|
||||
{
|
||||
get
|
||||
{
|
||||
// this property won't exist when deserialized from Everett to Whidbey
|
||||
// it shouldn't matter for DbConnectionString/DbDataPermission
|
||||
// which should only use Length during construction
|
||||
// not deserialization or post-ctor runtime
|
||||
Debug.Assert(0 < _length, "NameValuePair zero Length usage");
|
||||
return _length;
|
||||
}
|
||||
}
|
||||
internal string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return _name;
|
||||
}
|
||||
}
|
||||
internal NameValuePair Next
|
||||
{
|
||||
get
|
||||
{
|
||||
return _next;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((null != _next) || (null == value))
|
||||
{
|
||||
throw ADP.InternalError(ADP.InternalErrorCode.NameValuePairNext);
|
||||
}
|
||||
_next = value;
|
||||
}
|
||||
}
|
||||
internal string Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,6 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace System.Data
|
||||
@@ -18,10 +13,6 @@ namespace System.Data
|
||||
HResult = unchecked((int)0x80131936);
|
||||
}
|
||||
|
||||
private OperationAbortedException(SerializationInfo info, StreamingContext context) : base(info, context)
|
||||
{
|
||||
}
|
||||
|
||||
internal static OperationAbortedException Aborted(Exception inner)
|
||||
{
|
||||
OperationAbortedException e;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user