2009-07-15 Veerapuram Varadhan * SqlParameter.cs: Implement the "internal" FrameworkDbType, DbTypeMapping and SystemType properties. 2009-05-08 Veerapuram Varadhan ** Fixes #497715 - based on a patch by Jonas Larsson * SqlDataReader.cs: (GetSqlXml): Handle Xml types for TDS 8/8.1 clients as well. * SqlParameter.cs: Map XML type properly. 2009-04-28 Gonzalo Paniagua Javier * SqlConnection.cs: if the error causes a disconnection from the server, close the data stream. 2009-03-23 Veerapuram Varadhan * SqlDataReader.cs (GetSchemaRowType): Correctly handle Tds 8 BigInt type. 2009-02-02 Veerapuram Varadhan * SqlConnection.cs: Use TDS 8 instead of TDS 7 2009-01-24 Gonzalo Paniagua Javier * SqlConnection.cs: adapt to changes in TdsConnectionPool. Don't Close() on every error. 2009-01-17 Gert Driesen * SqlParameter.cs: Renamed isDirty to typeChanged; it is now now only used to indicate whether the type of the parameter has been updated. Changed signature of 'updated' argument in GetFrameworkValue to ref to match delegate in Mono.Data.Tds, and convert value if either the type has been changed or if the 'updated' argument is true (which - for now - means the value or size changed in TdsMetaParameter). Various fixes for derived parameters: - parameter_type 2 means InputOutput parameter, while 3 means Output; - Only set precision and scale is type is decimal. - When type has variable size, then also set Size. 2009-01-04 Gert Driesen * SqlDataReader.cs: Added GetSchemaRowDbType overload for getting sql type of a given column (identified using its ordinal). Modified GetBytes to throw SqlNullValueException (2.0 profile) or return 0 (1.0 profile) when reading bytes sequentially. Added support for non-sequentially reading text and ntext columns using GetBytes. Modified GetChar to throw a NotSupportedException to match MS. 2009-01-04 Gert Driesen * SqlCommandBuilder.cs (RefreshSchema): Clear commands. 2009-01-03 Gert Driesen * SqlDataReader.cs: Removed unused dataTypeNames, and unnecessary initializations. Added missing reader state and row state checks. Fixed implementation of HasRows. Modified type of DataType to object on 1.0 profile for compatibility with .NET 1.x. Do not mark (Big)VarBinary or ((Big)Binary as long, as unit tests show that IsLong is for wide (unicode) data types. Fixed type data for SmallDateTime and SmallMoney data types. Improved support for bigint data type (using TDS 7.0). 2009-01-03 Gert Driesen * SqlCommand.cs: Moved connection reset before the throw. Improved exception message. 2009-01-03 Gert Driesen * SqlCommandBuilder.cs: Only set SourceColumn for null check parameters on the 2.0 profile, and set SourceVersion to Current on 1.0 profile. Changed accessibility of RefreshSchema to public, and do not immediately create commands. Removed CWL. 2009-01-03 Gert Driesen * SqlParameter.cs: When setting ParameterName or sourceName to null, use a zero-length string instead. On 1.0 profile, only infer type from value if value is not null or DBNull. Store raw value in TdsMetadataParameter, and use delegate to convert it to framework type (when necessary). Improve implementation of SqlValue (still needs lots of work). 2009-01-03 Gert Driesen * SqlCommandBuilder.cs: Added missing checks for QuotePrefix and QuoteSuffix on 2.0 profile, and return a zero-length string if not set (or set to null) on 1.0 profile. Do not allow the value of CatalogSeparator and SchemaSeparator to be changed from '.'. Modified generated SQL to match MS. Added implementation for QuoteIdenfifier. Modified parameters to match MS. * SqlParameter.cs (SqlValue): Keep Value in sync. 2008-12-20 Gonzalo Paniagua Javier * SqlParameter.cs: I removed these 2 lines I added 2 patches ago in the previous patch... 2008-12-20 Gonzalo Paniagua Javier * SqlConnection.cs: close the connection on error. 2008-12-16 Gonzalo Paniagua Javier * SqlParameter.cs: don't allocate error strings until the error actually happens. Compare types instead of strings. Use a Hashtable for type mappings. 2008-12-12 Gonzalo Paniagua Javier * SqlParameter.cs: use the underlying type when inferring the type for enumerations. 2008-11-13 Veerapuram Varadhan * SqlCommand.cs: When a timeout exception occurs, reset the connection before re-using it. Fixes connection corrupted errors on timeout exception. 2008-11-09 Gert Driesen * SqlConnection.cs (ClearPool): Added null check. 2008-11-09 Gert Driesen * SqlConnection.cs: In Close, also remove reference to pool. In Open, set TdsConnection.Pooling to false for a non-pooled connection. Fixed ClearAllPools to no longer create a new connection for each pool. In ClearPool, perform a lookup of the pool to clear using the connectionstring as the pool field may refer to another pool (as the connectionstring may have changed). 2008-09-30 Veerapuram Varadhan * SqlDataReader.cs (GetSqlXml): Handle the scenario when Sql Server 2005 returns Xml column type as NTEXT when called from clients that use < TDS 8.0 protocol. 2008-09-20 Veerapuram Varadhan * SqlCommand.cs (DeriveParameters): Simplification of the if-else loop. 2008-09-20 Veerapuram Varadhan * SqlCommand.cs (DeriveParameters): Handle no square brackets case in schema/procedure names. 2008-09-17 Veerapuram Varadhan * SqlCommand.cs (DeriveParameters): Escape/trim both schema/procedure names before passing as parameter values. 2008-09-13 Atsushi Enomoto * SqlDependency.cs : wrong namespace. 2008-08-14 Gert Driesen * SqlConnection.cs: Use constants for min/max values. When value is zero-length string, then fallback to default value for boolean and integer backed properties. Throw ArgumentException when min pool size exceeds max pool size. Check whether value for 'MARS' is a bool. The 'user instance' property is 2.0 only. 2008-08-14 Gert Driesen * SqlConnection.cs: Convert keywords to lowercase instead of uppercase to avoid further case changes in exception messages. 2008-07-28 Gert Driesen * SqlCommand.cs (ExecuteReader): When behavior includes SingleRow, then only return a single result. Fixes bug #412569. 2008-07-28 Gert Driesen * SqlCommand.cs: Fixed order of arguments for ArgumentException in CommandTimeout. * SqlConnection.cs (ChangePassword): Do not allow empty connection string. Updated exception messages. 2008-07-28 Gert Driesen * SqlCommand.cs: Fixed param name in ArgumentException for negative CommandTimeout to match MS. On 2.0 profile, throw NRE in Prepare when connection is NULL. In Prepare, return immediately after connection check (2.0 only) for stored procedures, or when no parameters are added. Added check to see if transaction is associated with same connection as the command and updated exception messages. 2008-07-28 Gert Driesen * SqlCommand.cs: Added bool argument to ValidateCommand to specify whether an async method is being executed. Minor changes to exception messages to match MS. 2008-07-28 Gert Driesen * SqlCommand.cs: Avoid NRE in CloseDataReader when connection is NULL. Fixes bug #412584. Removed unused moreResults eargument from CloseDataReader. Removed behavior argument from Execute, and have it use the behavior field instead. In ValidateCommand, throw InvalidOperationException instead of NRE when Connection is NULL. * SqlDataReader.cs: Sync with SqlCommand's CloseDataReader signature change. 2008-07-28 Gert Driesen * SqlCommand.cs: (Transaction): On the 1.0 profile, do not allow Transaction to be set when a reader is open for the current connection. Fixes bug #412579. 2008-07-28 Gert Driesen * SqlCommand.cs (Connection): Do not throw InvalidOperationException if transaction is in progress. Fixes bug #412576. On 1.0 profile, throw InvalidOperationException when a reader is open for the current connection. Do not set transaction to NULL when changing connection, instead set it to null in Transaction when transaction is no longer open. 2008-07-28 Gert Driesen * SqlConnection.cs: Use null as default value for connectionString field. Remove Init method, as initialization is done in SetDefaultConnectionParameters. Initialize parms in SetDefaultConnectionParameters to avoid calling Reset on newly initialized collection. In Dispose (bool), also invoke base.Dispose if SqlConnection was already disposed. Fixes bug #412571. 2008-07-28 Gert Driesen * SqlConnection.cs (ChangeState): Return immediately when new state equals original state. Fixes bug #412574. Removed extra whitespace. 2008-07-23 Veerapuram Varadhan * SqlDataReader.cs (NextResult): Memleak fix - mark datatypeNames array to be GCed along with schemaTable. 2008-07-23 Veerapuram Varadhan * SqlDataReader.cs: Do not generate schemaTable unless otherwise asked for; use command.Tds.Columns instead. Improves performance of the DataReader. 2008-07-10 Veerapuram Varadhan ** Fixes #326182 * SqlCommand.cs (GetOutputParameters): Update parameter values iff parameter direction is InputOutput or Output. 2008-07-06 Gert Driesen * SqlException.cs: Modified HResult/ErrorCode to match MS. Removed unused FromTdsInternalException overload. Removed unnecessary check for Errors.Count. Minor code formatting. 2008-07-03 Rodrigo Kumpera * SqlConnection.cs: Remove connStringParameters as nobody uses it. 2008-07-01 Rodrigo Kumpera * SqlDataReader.cs: Do all column accesses with int indexes. 2008-07-01 Rodrigo Kumpera * SqlDataReader.cs (GetSchemaTable): All column index are constants, extract them. 2008-07-01 Rodrigo Kumpera * SqlDataReader.cs (GetSchemaTable): Calculate column indexes outside of the row loop. 2008-07-01 Marek Habersack * SqlDataReader.cs: use named properties in TdsDataColumn for the 2.0 profile. 2008-06-30 Zoltan Varga * SqlDataReader.cs: Allocate 'schemaTable' lazily. (GetSchemaValue): Avoid some hash table lookups 2008-06-27 Zoltan Varga * SqlDataReader.cs (ConstructSchemaTable): Avoid unneccessary reflection calls. 2008-06-23 Veerapuram Varadhan * SqlDependency.cs: New 2008-06-12 Veerapuram Varadhan Patch by Christian Hergert * SqlConnection.cs (Open): Do not reset the connection as it is already done in the TdsConnectionPool itself. 2008-06-12 Marek Habersack * SqlParameterCollection.cs: this [int] must check the range and throw an exception if necessary. * SqlCommand.cs: throw IOEX when stored procedure is not found in DeriveParameters. All procedures in MS SQL will report at least one parameter - the return value. 2008-06-10 Veerapuram Varadhan * SqlConnection.cs: TdsConnectionPool.GetConnectionPool() now returns IDictionary. 2008-06-09 Ankit Jain * SqlCommand.cs: Use Tds instead of ITds now. * SqlConnection.cs: Likewise. 2008-05-27 Gert Driesen * SqlConnection.cs: Added support for '.' as alias for localhost. Improve exception message when TCP/IP protocol is not enabled. 2008-05-17 Gert Driesen * SqlDataReader.cs (GetInt64): Removed workaround for TDS 7.0 handling of bigint column type as this is handled in Mono.Data.Tds. 2008-05-14 Marek Habersack * SqlConnection.cs: added support for USER INSTANCE keyword in the connection string. 2008-04-22 Veerapuram Varadhan ** Fixes Bug#381151 * SqlCommand.cs: Handle exceptions sanely and do not close connection on TdsTimeoutException. 2008-04-21 Gert Driesen * SqlBulkCopyColumnMappingCollection.cs: Changed argument names to match MS. Code formatting. * SqlCommand.cs: Changed argument names to match MS. Code formatting. Do not include explicit IDbCommand implementation on 2.0 profile. * SqlCommandBuilder.cs: Changed argument names to match MS. Code formatting. * SqlDataReader.cs: Changed argument names to match MS. Code formatting. * SqlParameterCollection.cs: Do not include IList, ICollection and IDataParameterCollection explicit interface implementation on 2.0 profile. Code formatting. * SqlConnection.cs: Changed argument names to match MS. * SqlDataAdapter.cs: Changed argument names to match MS. * SqlTransaction.cs: Do not include explicit interface implementation of IDbTransaction.Connection on 2.0 profile. Code formatting. 2008-04-19 Robert Jordan * SqlParameterCollection.cs (AddRange(SqlParameter[])): Fix endless recursion. 2008-04-08 Marek Habersack * SqlConnection.cs: TCP port discovery via UDP port 1434 should honor the timeout specified in the connection string (or the default one). In some environments 100 microseconds might not be enough to discover the port. 2008-04-01 Marek Habersack * SqlParameter.cs: ConvertToFrameworkType must handle empty strings gracefully - a DBNull.Value must be returned in this case. * SqlCommand.cs: DeriveParameters should split the stored procedure name into the schema name and procedure name before querying its parameters. 2008-03-03 Ankit Jain * SqlClientMetaDataCollectionNames.cs: Set the field values. 2007-10-21 Gert Driesen * SqlCommand.cs: Use ExceptionHelper.CheckEnumValue for enum checks. 2007-10-20 Gert Driesen * SqlCommand.cs: Added constant for default CommandTimeout, instead of using a magic number. Avoid unnecessary initialization. Fixed default value for DesignTimeVisible. Return zero-length string if CommandText is null. Use ExceptionHelper.InvalidEnumValueException to avoid code duplication. Spaces to tabs and code formatting. * SqlConnection.cs: Use different default package size on 2.0 profile. Added constants for default values, instead of using magic numbers. Avoid unnecessary initialization. In PacketSize, return default or configured packet size when connection is not open. Use ExceptionHelper.ConnectionClosed instead of local method. Removed use of some hardcoded values in SetDefaultConnectionParameters, and use Environment.MachineName as default WorkstationId instead of DNS host name. Code formatting. * SqlDataAdapter.cs: In default ctor, set SelectCommand to null. Avoid unnecessary initializations. Use direct assignment in IDbDataAdapter implementation. Fixed exception message for negative UpdateBatchSize. In Dispose override, make sure to invoke base method. 2007-10-19 Gert Driesen * SqlTransaction.cs: Clear connection in commit. In IsolationLevel, throw IOE if transaction is no longer open. 2007-10-19 Gert Driesen * SqlTransaction.cs: Avoid unnecessary initialization. Remove isRolledBack since its essentially the same as isOpen. Use ExceptionHelper.TransactionNotUsable instead of duplicating code. On 2.0 profile, ignore call to Rollback when transaction was already disposed. 2007-10-18 Gert Driesen * SqlConnection.cs: Avoid unnecessary initialization. Use string.Empty for assigning zero-length string, and use String.Length to check for zero-length string. Added support for IsolationLevel.Snapshot. Added StructuredTypeMembers schema collection and restrictions. Fixed table name for MetaDataCollections collection. Implemented DataSourceInformation collection. Added missing data types (probably introduced in 2.0 SP1). In GetSchema, throw InvalidOperationException if connection is closed and throw NotImplementedException for StructuredTypeMembers collection. 2007-10-18 Gert Driesen * SqlConnection.cs: On 1.0 profile, IsolationLevel.Unspecified is not valid. On 2.0 profile, when IsolationLevel.Unspecified is passed make sure to also set SqlTransaction.IsolationLevel to ReadCommitted. Modified exceptions to match MS. 2007-10-17 Nagappan * SqlParameter.cs (ConvertToFrameworkType): Added SqlDbType.Image. 2007-10-17 Nagappan * SqlConnection.cs: BeginTransaction does not handle IsolationLevel.Unspecified, so the default is set as ReadCommited. Thanks to Jerome Haltom for this patch. Fixes bug # 333082. * SqlTransaction.cs: If transaction count is greater then 0 then roll back. Thanks to Jerome Haltom for this patch. Fixes bug # 331953. 2007-10-15 Gert Driesen * SqlException.cs: Do not hide Message on 2.0 profile. Fixes bug #333901. 2007-10-08 Marek Safar * SqlParameterCollection.cs (SetParameter): Fixed missing cast. 2007-09-27 Nagappan A * SqlConnection.cs: Added MonoTODO appropriately. 2007-09-26 Nagappan A * SqlCommandBuilder.cs: Code alignment. 2007-09-25 Nagappan A * SqlInitialCatalogConverter.cs, SqlDataSourceConverter.cs: NetworkLibraryConverter.cs: Added new files. * SqlParameter.cs: 2.0 attribute changes. * SqlDataAdapter.cs: 2.0 attribute changes. * SqlConnectionStringBuilder.cs: 2.0 attribute changes. * SqlConnection.cs (ClearAllPools, ClearPool): Implemented 2.0 APIs, other 2.0 attribute changes. * SqlCommandBuilder.cs (GetSchemaTable, InitializeCommand): Implemented 2.0 APIs, other 2.0 attribute changes. * SqlBulkCopyColumnMappingCollection.cs: Added constructor, 2.0 API compatibility changes. * SqlException.cs: 2.0 attribute changes. 2007-08-13 Nagappan A * SqlConnection.cs (ConnectionString): 2.0 compatibility changes. * SqlDataReader.cs (IsCommandBehavior): Fixed spelling mistake of the method name. (Dispose): 2.0 compatibility changes. * SqlBulkCopy.cs (SqlRowsCopied): Fixed spelling mistake of the event name. (RowsCopied): Generates event when NotifyAfter is set. * SqlCommandBuilder.cs (Dispose, RefreshSchema): 2.0 compatibility changes. * SqlClientFactory.cs (CreateDataSourceEnumerator): Removed bogus TODO. * SqlException.cs (Message): 2.0 compatibility changes. 2007-08-06 Nagappan A * SqlCommand.cs, SqlDataReader.cs, SqlConnection.cs: When the server resets the connection, now the client code also disconnects the session and remove the instance from pool. Fixes bug # 81933. 2007-07-31 Nagappan A * SqlCommand.cs (Transaction, Connection): IDbCommand Transaction and Connection can be set to null. Fixes bug 82189. 2007-07-23 Nagappan A * SqlCommandBuilder.cs (ApplyParameterInfo, GetParameterName): (GetParameterPlaceholder): Implemented 2.0 missing APIs. 2007-07-22 Nagappan A * SqlBulkCopy.cs (NotifyAfter): Implemented 2.0 property. (GetColumnMetaData, GenerateColumnMetaData): (ValidateColumnMapping): Implemented private method's to generate and validate SqlBulkCopy headers. (BulkCopyToServer): Private method to actually do the bulk copy processing. (WriteToServer): Implemented 2.0 missing overloaded methods. (IDisposable.Dispose): Implemented 2.0 missing method. * SqlBulkCopyColumnMappingCollection.cs (Add, CopyTo): Implemented missing API. (Item): Implemented missing property. * SqlBulkCopyColumnMapping.cs: Modified the implementation of Constructors to use property. * SqlDataReader.cs (GetSqlXml, IsCommandBehaviour): Added 2.0 missing method. (Connection): Added missing property. * SqlParameter.cs (SetSqlDbType, ConvertToFrameworkType): Modified method as internal from private. * SqlConnection.cs: Fixed 2.0 missing feature. * SqlException.cs: Fixed 2.0 missing feature. * SqlClientPermission.cs: Fixed 2.0 missing feature. 2007-07-01 Gert Driesen * ISqlNotificationReceiver.cs: Removed. * SqlClientFactory.cs: Use SqlDataSourceEnumerator from S.D.Sql and marked method todo. Avoid unnessary casts. Code formatting. * SqlCommand.cs: Explicit interface implementation of IDbCommand not necessary on 2.0 profile. Fixes API mismatches. Avoid unnecessary casts. Code formatting. * SqlConnection.cs: Also use RecommendAsConfigurable instead of SettingBindableAttribute on 2.0. Use StateChange event from base class on 2.0. Only explicitly implement IDbConnection methods on 1.0, since these are implemented by base class on 2.0 profile. Removed extra explicit implementation of IDisposable since the base class implements this. Code formatting. * SqlDataAdapter.cs: Dispose (bool) override not necessary on 2.0 profile. Stubbed ICloneable.Clone. Fixes API mismatches. * SqlDataReader.cs: On 2.0, IDisposable.Dispose is implemented by DbDataReader. Only 1.0 profile, explicitly implemented IEnumerable GetEnumerator. Code formatting. * SqlDataSourceEnumerator.cs: Removed. * SQLDebugging.cs: Marked sealed on 2.0. Code formatting. * SqlNotificationAuthType.cs: Removed. * SqlNotificationInfo.cs: Added missing fields. Code formatting. * SqlNotificationSource.cs: Added missing fields. Code formatting. * SqlNotificationTransports.cs: Removed. * SqlNotificationType.cs: Added missing Unknown field. Code formatting. * SqlParameter.cs: Removed Browsable and EditorBrowsable attributes from Precision and Scale. Fixes API mismatches. Code formatting fixes. * SqlTransaction.cs: On 2.0 profile, Dispose method is exposed by base class. Fixes API mismatches. Code formatting fixes. 2007-06-21 Nagappan A * SqlConnection.cs: Fixed compiler warning. 2007-06-11 Nagappan A * SqlConnection.cs (ParseDataSource): Adds tcp support in connection string. Fixes bug # 80975. * SqlCommand.cs (Dispose): On disposing the command object, don't dispose connection and transaction. 2007-06-06 Nagappan A * SqlCommand.cs, SqlConnectionStringBuilder.cs, SqlConnection.cs: Fixed 1.0 and 2.0 extras, errors as stated in class status page. * SqlDataAdapter.cs, SqlParameter.cs:Fixed 1.0 and 2.0 extras, errors as stated in class status page. * SqlBulkCopyColumnMappingCollection.cs: Fixed 1.0 and 2.0 extras, errors as stated in class status page. 2007-05-30 Nagappan A * SqlParameter.cs (SqlParameter): Updated constructor to use the new TDS RPC implementation. Fixed missing attributes. (SetDbType): Added new case for sql_variant type. (ConvertToFrameworkType): Implemented new private method to convert the data type to framework type. * SqlParameterCollection.cs: Fixed missing attributes and implemented missing methods. * SqlConnection.cs: Fixed missing attributes. * SqlConnectionStringBuilder.cs: Certain attributes are missing or its value or they are not appropriate. Fixed them. * SqlDataReader.cs (GetData): Method is available only under 1.0 profile. * SqlCommandBuilder.cs: Certain attributes are available only under 2.0 profile, so moved them inside ifdef. * SqlCommand.cs: Certain attributes are available only under 2.0 profile, so moved them inside ifdef. * SqlBulkCopy.cs: Added new stubs. * SqlBulkCopyColumnMappingCollection.cs: Added new stubs. 2007-05-29 Nagappan A * SqlCommand.cs (Dispose): Command.Dispose closing connection. Fixes bug # 81710. Thanks to AMC for the fix. 2007-05-10 Nagappan A * SqlClientMetaDataCollectionNames.cs: Fixed incorrect constructor type. * SqlConnectionStringBuilder.cs: Fixed missing attributes. 2007-05-09 Igor Zelmanovich * SqlConnectionStringBuilder.cs: added MonoNotSupported attribute. 2007-04-03 Amit Biswas * SqlDataReader.cs (GetSqlBytes, GetProviderSpecificFieldType) (GetProviderSpecificValue, GetProviderSpecificValues): Implemented missing API. * SqlParameter.cs (XmlSchemaCollectionDatabase): Implemented missing property (XmlSchemaCollectionName): Implemented missing property (XmlSchemaCollectionOwningSchema): Implemented missing property (SourceColumnNullMapping): Existing implementation was not correct, Replaced the implementation (.ctor): Implemented mising constructor new in .net 2.0 * SqlErrorCollection.cs (CopyTo): Implemented missing API * SqlParameter.cs (InferSqlType): Corrected bug related to default values of SqlDbType and DbType (ResetSqlDbType): Implemented missing API (ResetDbType): Implemented missing API 2007-03-09 Amit Biswas * SqlParameterCollection.cs (CopyTo): Implemented missing API 2007-04-02 Nagappan A * SqlParameter.cs: Variable name fix. 2007-03-20 Nidhi Rawal * SqlClientFactory.cs: Added two using directives. (CreateConnectionStringBuilder): Implemented the method. (CreatePermission): Implemented the property. * SqlCommand.cs: Added one using directive. (Clone): Implemented the method. (Dispose): Implemented the method. (BeginExecuteXmlReader): Implemented the method. * SqlCommandBuilder.cs (QuoteIdentifier): Implemented the method. (UnquoteIdentifier): Implemented the method. * SqlConnection.cs (ChangePassword): Implemented the method. 2007-03-19 Nidhi Rawal * SqlClientFactory.cs (CanCreateDataSourceEnumerator): Implemented the property. * SqlCommand.cs (Notification): Implemented the property. (NotificationAutoEnlist): Implemented the property. * SqlDataReader.cs (VisibleFieldCount): Implemented the property. * SqlConnectionStringBuilder.cs (TrustServerCertificate): Implemented the property. (TypeSystemVersion): Implemented the property. (UserInstance): Implemented the property. (ContextConnection): Implemented the property. * SqlConnection.cs (FireInfoMessageEventOnUserErrors): Implemented the property. (StatisticsEnabled): Implemented the property. * SqlDataAdapter.cs (UpdateBatchSize): Implemented the property. * SqlParameter.cs: Implemented one attribute. 2007-03-16 Andreia Gaita * SqlParameter.cs: Move isVariableSizeType flag to TdsMetaParameter so that the TdsMetaParameter can validate itself for valid size / values. * SqlCommand.cs (Execute): Call Validate on TdsMetaParameter. 2007-03-14 Nagappan A * SqlCommand.cs (CommandType): Exception type thrown in 2.0 profile is different than 1.0, ArgumentOutOfRangeException. (Connection): Exception type thrown in 2.0 profile is different than 1.0, ArgumentOutOfRangeException. (Execute): If Size property is 0 for String and Binary type, then throw InvalidOperationException. (ValidateCommand): Exception type thrown in 2.0 profile is different than 1.0, NullReferenceException. 2007-03-09 Nagappan A * SqlDataReader.cs: Fixed syntax erros reported in class status page. 2007-03-09 Andreia Gaita * SqlCommand.cs (ExecuteScalar): Fix returned value for stored procedure calls to return the first column of the first row produced by the proc. 2007-03-08 Nagappan A * SqlCommand.cs (CloseDataReader): Checks whether the SQL connection is created or not. 2007-03-07 Andreia Gaita * SqlCommand.cs (ExecuteScalar): when calling stored procedures, implement support for return of output values in the parameter collection. 2007-02-16 Nidhi Rawal * SqlParameter.cs (CompareInfo): Implemented the property CompareInfo. (LocaleId): Written the property LocaleId. (SqlValue): Written the propert SqlValue. 2007-02-15 Nidhi Rawal * SqlCommand.cs: Added some attributes which were not implemented for .NET 2.0 and removed extra attribute which are not there in .NET 2.0. * SqlCommandBuilder.cs: Added some attributes that were not implemented for .NET 2.0. * SqlParameterCollection.cs: Added some attributes that were not implemented for .NET 2.0. * SqlConnectionStringBuilder.cs: Added some attributes that were not implemented for .NET 2.0. * SqlConnection.cs: Added attribute that was not implemented for .NET 2.0. * SqlParameter.cs: Added some attributes which were not implemented for .NET 2.0 and removed some extra attributes which are not there in .NET 2.0 2007-02-09 Nagappan A * SqlConnection.cs (SetConnectionString): Fixes bug # 80712. A small typo. 2007-01-08 Nagappan A * SqlTransaction.cs (Dispose): Fixed compliation warning. * SqlDataReader.cs (GetValues): Length of elements to be copied was decided based on the argument array passed, which caused a bug, if the length of given array is more than actual column values. * SqlCommandBuilder.cs (CatalogSeparator, SchemaSeparator) (CatalogLocation): Implemented missing properties. (CreateDeleteCommand, CreateInsertCommand, CreateUpdateCommand): Modified private methods to take bool flag. If true, add actual parameter name instead of p1, p2 etc. (CreateParameter): Added overloaded private method to create parameter with the actual column name. (GetUpdateCommand, GetDeleteCommand, GetInsertCommand): Implemented missing overloaded methods. (SetRowUpdatingHandler): Implemented missing protected method. * SqlCommand.cs: Fixed compilation warning. Removed bogus MonoTODO's. 2006-12-05 Nagappan A * SqlCommand.cs (Execute): If sql2 length is greater than 0, then add ';' and the respective sql2 string and then execute the string. Fixes bug # 79880. 2006-08-30 Nagappan A * SqlConnection.cs: Implemented SqlConnection.GetSchema (). 2006-09-08 Konstantin Triger * SqlClientFactory.cs: implemented SqlClientFactory.CreateConnection (). 2006-07-13 Senganal T * SqlClientFactory.cs SqlCommand.cs SqlConnectionFactory.cs SqlClientPermission.cs SqlParameterCollection.cs SqlDataReader.cs SqlConnection.cs SqlParameter.cs SqlTransaction.cs : 2.0 Api fixes 2006-05-31 Gert Driesen * SqlConnection.cs: Removed extra destructor, as destructor on System.ComponentModel.Component already calls Dispose. * SqlParameter.cs: Removed explicit interface implementation of IDataParameter.ParameterName. 2006-05-26 Senganal T * SqlParameter.cs : - InferSqlType : if value is null or DBNull.Value, retain the current parameter type. 2006-04-18 Senganal T * SqlConnection.cs : - SetConnectionString : set the pareameter to default values if connection string is empty or null - Open : Raise InvalidOperationException if Connection String is empty or null - Dispose : Test exception not raised if dispose called on a connection with empty connection string slight modification of the patch by Jonel Rienton 2006-04-07 Senganal T * SqlCommandBuilder.cs : * CreateDeleteCommand () * CreateUpdateCommand () * CreateInsertCommand () - Changed the signature. Do not need DataRow parameter as the Query generated is parametric. - Correct the null-check term in the WhereClause, set the correct properties for null-check parameter fixes #78027 - Modified the generated query to match the query as generated by 2.0. We now ignore null-check in the whereclause if the Column does not allow nulls. * ctor () : Set QuotePrefix and QuoteSuffix for 2.0 profile * GetUpdateCommand () * GetInsertCommand () * GetDeleteCommand () - Do not create new command everytime. Create only if not already created. * RefreshSchema : Reset the commands. 2006-02-17 Chris Toshok * SqlCommand.cs, SqlCommandBuilder.cs, SqlConnection.cs, SqlDataAdapter.cs: remove DataSysDescription attributes for >= 2.0 2006-02-17 Chris Toshok * SqlDataReader.cs: remove VisibleFieldCount property. 2006-02-10 Senganal T * SqlDataReader.cs : - GetBytes : Read binary/blob/clob data sequentially when CommandBehavior is set to SequentialAcccess - GetChars : Read String/clob data sequentially when CommandBehavior is set to SequentialAccess * SqlCommand.cs : - ExecuteReader : set SequentialAccess property on TDS - CloseDataReader : Reset the command behavior 2006-01-27 Senganal T * SqlCommandBuilder.cs : - Modified CreateUpdateCommand,CreateDeleteCommand , to not include column name in the query if its a expression col. Also, modified the queries to match the generated queries in ms.net * SqlCommand.cs : - Modifed Prepare, to check if Parameter is explicitly initialized * SqlParameter.cs : - Added CheckIfInitialized : Checks if datatype is explicitly set and non-zero size is set for variable datatypes. * SqlDataReader.cs : - Added code for GetSqlBinary () - Fixed GetFieldCount () - Added more checks and exceptions. 2006-01-17 Senganal T * SqlCommandBuilder.cs - Modified CreateNewCommand () : Clean up any existing parameter list before reusing the command.Fixes #77225 2005-11-24 Senganal T * SqlConnection.cs - Modifications to get the correct Packet Size 2005-11-21 Senganal T * SqlClientFactory.cs * SqlCommandBuilder.cs * SqlParameterCollection.cs * SqlDataReader.cs * SqlDataAdapter.cs * SqlParameter.cs * SqlTransaction.cs Added stubs and other changes for ADO.NET 2.0 compatibility 2005-11-12 Gonzalo Paniagua Javier * SqlConnection.cs: don't throw NotImplementedException when using 'PERSIST SECUTIRY INFO'. Just do nothing. 2005-10-27 Senganal T * SqlCommand.cs * SqlDataReader.cs Made changes so that the number of rows affected can be got directly from Tds regardsless of the type of query.Fixes bug #75698 2005-10-19 Senganal T * SqlConnection.cs (SetProperties) : - Added support for AttachDBFileName 2005-10-19 Senganal T * SqlException.cs (Constructor) - Modified the constructor, so that the message parameter of base class is not the same as that of the Exception message. fixes bug #76468 2005-09-24 Sureshkumar T * SqlParameterCollection.cs (AddWithValue): added method. patch from awaddell@fnfr.com (Andy Waddell). 2005-09-21 Senganal T * SqlConnection.cs : - Set the correct Default Values for Parameters. - Added Argument Checks (where missing) for the Properties and throw the correct exception on error. - Modified SetDefaultParameters() to make sure that the parameters are all reset to default values everytime it is called. - Modified SetProperties() to take into account the order of the keywords in the ConnectionString. SqlConnection Fixes for the failing sqlserver connected-mode testcases in ProviderTest/System.Data.SqlClient/SqlConnectionTest.cs 2005-09-21 Senganal T * SqlTransaction.cs : Modifed the Rollback() method, so that connection can be used for another transaction after the previous transaction is rolled back. fixes bug 75904 2005-09-02 Umadevi S * Removed SqlResultSet.cs file 2005-08-26 Sureshkumar T * SqlConnection.cs (Open): enable sp_reset_connection. 2005-08-25 Sureshkumar T * SqlCommandBuilder.cs: BuildInformation (): continue on columns who don't have basetablename. 2005-08-12 Daniel Morgan * SqlCommandBuilder.cs: update command builder based on OdbcCommandBuilder latest changes to fix regression of bug 75552 2005-08-05 Sureshkumar T * SqlCommandBuilder.cs: Set SourceVersion property to the created parameters as it is used by the Adapter's Update method. 2005-07-22 Sureshkumar T * SqlCommandBuilder.cs, SqlParameterCollection.cs, SqlConnection.cs, SqlParameter.cs: - updated attributes & attribute descriptions to match with masterinfos. 2005-07-16 Daniel Morgan * SqlCommandBuilder.cs: CreateUpdateCommand should get the current value, not the orginal value when setting one of the SET variables 2005-07-15 Sureshkumar T * SqlCommandBuilder.cs: - set_DataAdapter: unsubscribe event if DataAdapter is reset. - CreateInsertCommand, CreateUpdateCommand, CreateDeleteCommand: if column mapping is missing, use the source column name. use proper version to get the data. - RowUpdatingHandler: set status to continue to actually process the query. 2005-07-04 Ben Maurer * SqlError.cs: Patch from dezelin@gmail.com to fix serialization. 2005-06-29 Sureshkumar T * SqlConnection.cs: Open (): catch TdsInternalException and throw SqlException. * SqlException.cs: code re-organised to pass message as well with the exception. 2005-06-23 Sureshkumar T * SqlConnectionStringBuilder.cs: simplified multiple keyword mappings and allowed-key checking. fixed Item, Remove, ContainsKey, ShoudSerialize, TryGetValue implementations. 2005-06-21 Sureshkumar T * SqlConnectionStringBuilder.cs: Connection String Builder class for SqlClient Data Provider. 2005-06-01 Gonzalo Paniagua Javier * SqlParameter.cs: moved the 'using S.D.SqlTypes' out of NET_2_0. Fixes the build. 2005-06-01 Sureshkumar T * SqlParameter.cs: Parameter's value can be SqlTypes. Convert to framework type to pass to TDS layer. Fixes bug #75044. 2005-05-24 Umadevi S * fixed some 2.0 and 1.0 specific fields/attributes for various classes. * Added SqlClientMetaDataCollectionNames.cs, Implemented some 2.0 properties for SqlParameterCollection for the bulkcopy feature. 2005-05-20 Kornél Pál * Fixed Bug #53169 - SqlDataReader incorrectly returns bigint as decimal Note: The fix works around the limitations of TDS 7.0 to avoid this difference between Mono and .NET Framework TDS 8.0 should be used instead. 2005-05-20 Umadevi S * Fixed Bug 74948 - SqlParameter also takes DBNull Value. Correct some attributes stuff of 1.1 and 2.0 for SqlParameter.cs 2005-05-20 Umadevi S * Continuing on implementation for bulkcopy and notification Added files SqlNotificationEventArgs.cs, OnChangeEventHandler.cs Modified SqlRowUpdatingEventArgs.cs 2005-05-19 Umadevi S * For implementation of bulkcopy and notifications added files SqlBulkCopyOptions.cs,SqlBulkCopyColumnMapping.cs,SqlNotificationAuthType.cs SqlNotificationTransports.cs,SqlRowsCopiedEventArgs.cs, SqlRowsCopiedEventHandler.cs 2005-05-19 Umadevi S * Corrected types,enum values of SqlNotificationType,SqlNotificationSource, SqlNotificationInfo and added new method in SqlRowUpdatingEventArgs.cs (For implementation of bulkcopy/notifications) 2005-04-19 Sureshkumar T * SqlDataReader.cs: NextResult (): Re-create schema table for each result set. don't re-use, as it may be referenced from somewhere. 2005-04-07 Sureshkumar T Ankit Jain * SqlConnection.cs: Implemented additional connection string property "Asynchronous Processing". * SqlCommand.cs: Implemented Asynchronous command execution API. * SqlAsyncState.cs: A internal state object for asynchronous operations. * SqlAsyncResult.cs: Added. Class to hold result for asynchronous queries. 2005-03-28 Sureshkumar T * SqlCommand.cs: Execute: Add a semicolon at the end of CommandText. Multiple semicolon's are not being complained. fixes bug #74134. 2005-03-11 Gonzalo Paniagua Javier * SqlConnection.cs: added a finalizer for correct implementation of the IDisposable pattern. 2005-03-11 Gonzalo Paniagua Javier * SqlException.cs: make it serialization-compatible with MS. Patch by Aleksandar Dezelin. Closes bug #73596. 2005-03-08 Sureshkumar T * SqlDataReader.cs: Call base constructor with CommandBehavior parameter instead of passing DbCommand object. The internal base class with DbCommand Parameter is removed. 2005-03-07 Sureshkumar T * SqlCommand.cs : Set CommandBehavior on ExecuteReader,ExecuteScalar,ExecuteNonQuery. This is used in CloseDataReader. This fixes bug #73252. 2005-03-03 Sureshkumar T * SqlClientFactory.cs: While creating command, create using DbConnectionFactory as DbConnectionBase.CreateDbCommand needs to have a connection factory. * SqlConnection.cs: Added an internal constructor which takes DbConnectionFactory. * SqlConnectionFactory.cs: Added. Concrete class for abstract factory DbConnectionFactory. 2005-02-22 Sureshkumar T * SqlDataReader.cs: GetBytes: return the length of the data if output buffer is null. if not, copy the values to buffer and return the bytes actually read. 2005-02-02 Sureshkumar T * SqlConnection.cs: - Database: return db name from database if connection open, otherwise take from connection string. - Set default values for parameters in the constructor itself. - Dangling else problem with Close method. - reset values of parms (TdsConnectionParameters) rather setting to null. - set disposed to false in Open method - finally call base.Dispose in Dispose (bool) Fixes nunit regressions SqlConnectionTest:DefaultConnectionValues and SqlConnectionTest:DatabaseSynonyms. 2005-01-27 Sureshkumar T * SqlCommand.cs (DeriveParameters): Change parameter name to "procedure_name". * SqlParameter.cs (SqlParameter (object [])) : call default constructor to create Tds.Metaparameter. fixes bug #63122. 2005-01-03 Sureshkumar T * SqlCommand.cs: Fixed bug #68973. Reset Tds.RecordsAffected to 0 for each execute statement. 2004-11-25 Sureshkumar T These changes are for 2.0 profile only. These changes implement the generic data base access technique using Provider Factory Implementation. These classes need to be dervided from abstract base classes so that the corresponding factory classes are created when calling CreateCommand, CreateParameter, etc. * SqlClientFactory.cs: Provider Factory class Implementaion for SqlServer * SqlParameter.cs: Change base classes and override methods. * SqlParameterCollection.cs: Change base classes and override methods. * SqlTransaction.cs: Change base classes and override methods. * SqlDataSourceEnumerator.cs: DataSource Enumerator stubs. * SqlDataReader.cs: Change base classes and override methods. * SqlConnection.cs: Change base classes and override methods. * SqlCommandBuilder.cs: Change base classes and override methods. * SqlCommand.cs: Change base classes and override necessary methods. 2004-10-14 Umadevi S * SqlCommand.cs - Implemented the clone method correctly. (fixed bug 67301) 2004-10-06 Umadevi S * ISqlNoticationReceiver.cs - changed namespace * Added files SqlNotificationType.cs, SqlNotificationInfo.cs, SqlNotificationSource.cs 2004-09-24 Umadevi S * SqlTransaction.cs - Dispose will not call rollback incase the transaction is not open. 2004-09-14 Sebastien Pouliot * SqlClientPermission.cs: Added internal constructor accepting an Sql ClientPermissionAttribute parameter (using base class protected ctor). * SqlClientPermissionAttribute.cs: Copy now use the new SqlClient Permission constructor. 2004-09-13 Sebastien Pouliot * SqlClientPermission.cs: Mostly completed (needs tests). * SqlClientPermissionAttribute.cs: Completed. 2004-09-02 Umadevi S * SqlCommand.cs - ExecuteNonQuery to return -1 incase of executing a storedprocedure 2004-08-16 Gert Driesen * SqlConnection.cs: added TODO on ConnectionString for keywords that are not yet implemented. check value of Integrated Security keyword, check value of bool keywords, improve error reporting for int keywords, added support for the following keyword synonyms : APP, TIMEOUT, NETWORK, PERSISTSECURITYINFO, WSID, LANGUAGE, USER. Throw NotImplementedException when encrypt keyword is set to true, enlist keyword is set to false or attachdbfilename keyword (or one of its synonyms) is set. Added FIXME for PERSIST SECURITY INFO keyword, throwing a NotImplementedException here would break lots of apps 2004-08-16 Gert Driesen * SqlConnection.cs - spaces to tabs 2004-08-12 Sureshkumar T * SqlDataReader.cs - In Close method, the remaining resultsets are drained out, to read output parameters & to avoid stream overlap 2004-06-30 Umadevi S * SqlCommand.cs : In the Execute Method the commandbehavior parameters were ignored correct these 2004-06-22 Atsushi Enomoto * SqlCommandBuilder.cs : Avoid cast exception caused by DbNull. 2004-06-18 Umadevi S * SqlCommand.cs - ExecuteNonQuery returns -1 in all cases except insert,update or delete. 2004-06-18 Umadevi S * SqlConnection.cs - handled null being passed as a connectionstring - checked for minimal set of parameters in connectionstring. - handled unrecogonized keywords similar to MS.NET 2004-06-17 Umadevi S * SqlTransaction.cs - fixed multiple rollbacks being called causes invalidoperationexception 2004-06-04 Gert Driesen * SqlClientPermission.cs: removed extra CreateInstance method 2004-06-02 Gert Driesen * SQLDebugging.cs: added missing attributes, marked ctor public to match MS.NET 2004-05-22 Atsushi Enomoto * SqlClientPermission.cs : don't use chained obsolete .ctor. 2004-05-20 Gert Driesen (drieseng@users.sourceforge.net) * SqlClientPermissionAttribute.cs: change AllowMultiple and Inherited to match .NET 2004-05-20 Umadevi S * Fixed bug 58406- implemented the hasrow method, test program used to test with the bug report 2004-05-13 Umadevi S * SqlClientPermission.cs, SqlDataReader.cs - added missing methods with TODO tags * SqlCommand.cs, SqlDataAdapter.cs - implemented ToolboxItemAttribute * SQLDebugging.cs - Added new file with a TODO tag 2004-04-05 Lluis Sanchez Gual * SqlConnection.cs: Use connection pool implemented in Mono.Data.Tds. 2004-04-01 Lluis Sanchez Gual * SqlDataReader.cs: Null values are now represented with DBNull instances. Deal with this. 2004-03-14 Tim Coleman * SqlCommand.cs SqlConnection.cs: Changes from two patches by Andres Taylor 2004-03-12 Andreas Nahr * SqlParameter.cs: DO NOT USE the consts scheme if types can be referenced directly! 2004-01-10 Atsushi Enomoto * SqlClientPermission.cs : Fixed NET_2_0 build related to obsolete attribute problem (see DbDataPermission.cs) 2003-12-28 Tim Coleman * SqlResultSet.cs: Stubbed out this class. 2003-12-23 Tim Coleman * SqlConnection.cs: Improved connection string parsing. See System.Data.Common.DbConnectionString for source. 2003-12-21 Tim Coleman * SqlConnection.cs: Enable Integrated Security 2003-12-19 Tim Coleman * ISqlNotificationReceiver.cs SqlResultSet.cs: New stubs added * SqlClientPermission.cs: Fix constructor for 1.2 2003-12-04 John Luke * SqlXmlTextReader.cs: applied patch from Chris Masters fix peek so it checks if it is at the end and also to make sure that if Read() advances the position past the end of the localBuffer array, it makes a call to GetNextBuffer(). fixes bug #40253 System.IndexOutOfRangeException when using SqlCommand.ExecuteXmlReader() 2003-11-20 Joerg Rosenkranz * SqlConnection (SetDefaultConnectionParameters): Changed default value of WORKSTATION ID to reflect real host name instead of "localhost". 2003-11-16 Ben Maurer * SqlParameterCollection.cs (Clear): Clear needs to take the parameter out of the collection so that it can be used again. (Remove): (RemoveAt): Ditto. 2003-10-03 Diego Caravana * SqlCommand.cs: no change. * SqlConnection.cs (Close): Added checks for null instance variables. * SqlParameter.cs (Direction): Now handles parameters of type ReturnValue and InputOutput. * SqlParameterCollection.cs (IndexOf(string)): Search for SqlParameter object in list is done by obtaining ParameterName attribute, not directly through list.IndexOf(). 2003-08-22 Duncan Mak * SqlCommand.cs (ExecuteNonQuery): Return Connection.Tds.RecordsAffected if it is successful. Patch from Jörg Rosenkranz . This is part of a fix to bug #40315. 2003-08-20 Duncan Mak * SqlConnectionPool.cs (ReleaseConnection): A patch from Joerg Rosenkranz . Currently, if a connection is closed by an external event (network problem, etc.) it is pushed back into the connection pool. The next Open call retrieves this invalid connection which leads to exceptions when executing statements. This patch fixes this problem. This closes bug #47429. 2003-07-04 Miguel de Icaza * SqlDataReader.cs: Added extra information to the exceptions thrown by all the GetXXXX methods. 2003-03-15 Daniel Morgan * SqlConnection.cs: if Server in the ConnectionString is set to "(local", use "localhost" as the hostname to connect 2003-03-04 Gonzalo Paniagua Javier * SqlException.cs: implemented GetObjectData (). 2003-02-16 Daniel Morgan * ChangeLog: added this file * SqlConnection.cs: - parse data source for 3 possible uses: "Server=hostname", "Server=hostname\\instancename", "Server=hostname,port" and open the connection based on the resulting server name and port. - Added support for named instances by discovery of the sql server tcp port via the sql monitor (udp port 1434) thanks to Phillip Jerkins (Phillip.Jerkins@morgankeegan.com) contribution. Also, thanks to Gonzalo and Tim for their help with timeouts.